博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 一致性检测_Python代码中一致性的重要性
阅读量:2527 次
发布时间:2019-05-11

本文共 1387 字,大约阅读时间需要 4 分钟。

python 一致性检测

最小惊喜原则是设计用户界面时 。 它说,当用户执行某项操作时,程序应执行会使用户感到最少的事情。 出于同样的原因,孩子们喜欢一遍又一遍地读同一本书:给人的安慰就是预测和使这些梦想成真的能力。

Python的灵感来自开发的一个关键见解是编程语言是用户界面,需要使用与UI设计人员相同的工具进行设计。 值得庆幸的是,从那时起,更多的语言已经从UI设计中采用了可承受性和人体工程学的概念,即使它们应用得不太严格。

这将我们带入的下三个原则。

面对模棱两可的想法,拒绝猜测的诱惑。

1 +“ 1”是?
“ 11”
2都是有效的猜测。 这种表达是
模棱两可的 :没有任何一件事情可以做,这至少对某些人来说并不奇怪。

一些语言选择猜测。 在JavaScript中,结果为“ 11” 。 在Perl中,结果为2 。 在C语言中,结果自然是空字符串。 面对歧义,JavaScript,Perl和C都在猜测。

在Python中,这会引发TypeError :一个非静默的错误。 捕获TypeError是非典型的:通常会终止程序或至少终止当前任务(例如,在大多数Web框架中,它将终止对当前请求的处理)。

Python拒绝猜测1 +“ 1”的含义。 程序员被迫以明确的意图编写代码: 1 + int(“ 1”) ,将为2 ; 或str(1)+“ 1” ,将是“ 11” ; 或“ 1” [1:] ,这将是一个空字符串。 通过拒绝猜测,Python使程序更具可预测性。

应该有一种(最好只有一种)明显的方式来做到这一点。

预测也相反。 给定任务,您可以预测要实现该任务的代码吗? 当然,不可能完美地预测。 毕竟,编程是一项创造性的任务。

但是,没有理由故意提供多种冗余方式来实现同一目标。 从某种意义上说,某些解决方案“更好”或“更Pythonic”。

对Python美学的欣赏部分是因为可以就哪种解决方案更好进行健康辩论。 甚至可以不同意并继续编程。 为了和谐起见,不同意甚至是可以的。 但在这一切之下,必须有一种感觉,最终,正确的解决方案将会浮出水面。 我们必须希望,通过商定实现目标的最佳方法,我们最终可以真正和谐地生活。

尽管起初这种方式可能并不明显(除非您是荷兰人)。

这是一个重要的警告:首先,通常不清楚什么是完成任务的最佳方法。 观念在不断发展。 Python正在发展。 逐块读取文件的最佳方法可能是等到Python 3.8并使用 。

这项逐项读取文件的常见任务在Python已有近30年的历史中并没有“唯一的最佳方式”。

当我从1998年开始在Python 1.5.2中使用Python时,没有一种最佳的逐行读取文件的方法。 多年来,了解字典是否具有键的最佳方法是使用.haskey ,直到in运算符成为最佳方法。

仅通过欣赏,有时找到一种(唯一的)实现目标的方法可能需要30年的时间来尝试Python可以继续寻找这些方法的替代方法。 这种历史观点认为,接受30年是可以接受的时间,但对于美国人民来说,这已经存在了200多年了,但这种感觉常常对美国人来说是陌生的。

根据Python Zen的这一部分,无论是Python的创建者还是著名的计算机科学家 ,荷兰人都有不同的世界观。 欧洲一定要赞赏时间,这是至关重要的。

翻译自:

python 一致性检测

转载地址:http://lsszd.baihongyu.com/

你可能感兴趣的文章
DesignPattern_Java:设计模式分类和设计原则
查看>>
2019-05-16mysql忘记密码怎么办
查看>>
小项目,吃货联盟,java初级小项目,源代码
查看>>
【VS开发】Windows平台下Makefile学习笔记
查看>>
【GStreamer开发】GStreamer基础教程05——集成GUI工具
查看>>
第十五章:进程间通信
查看>>
那些年 我们都在...
查看>>
Unity PlayerPrefs类进行扩展(整个对象进行保存)
查看>>
[c# 20问] 4.Console应用获取执行路径
查看>>
try catch finally 用法
查看>>
estore商城案例(一)------用户注册&邮件激活(上)
查看>>
Microsoft ASP.NET 4 Step by Step
查看>>
二叉树--递归实现
查看>>
推荐几款好用的CRM
查看>>
向java全台推送数据等
查看>>
HDU2072 tri树/map/set/字符串hash
查看>>
46个Linux面试常见问题送给你
查看>>
linux中配置Java环境
查看>>
No.025:Reverse Nodes in k-Group
查看>>
CodeForces 522D Closest Equals 树状数组
查看>>