嵌套模块在 Python 中并不常见——至少我之前没有见过像module.class.subclass.function这样的东西——可读性不好。虽然在另一个子模块中构建子模块能够会增加代码行数,但我们不希望用户被不直观的语法所困扰。
7. 距离胜于紧凑不要在一行中插入太多代码,这会给读者带来压力。建议最大行长度 79 个字符。这样,当运用代码评审工具时,编辑器窗口宽度限制才能很好任务。
运用 Python 从 Unsplash 下载图片
8. 可读性很重要代码的阅读次数比编写次数多。思索下缩进,它让代码更容易阅读,比较下面的代码:
money = 10000000
print("I earn", money, "dollars by writing on medium.")
money = 10_000_000
print(f"I earn {money} dollars by writing on medium.")
在本例中,代码结果相反,但是后一段代码经过运用下划线占位符和 f-string 提供了更好的可读性。在 Python 3.6 发布后,f-string 末尾让格式化变得更复杂,并且在处置包含更多变量的更长的句子时更弱小。
一个作家的作风不应该在他的思想和读者的思想间设置阻碍。
9. 特例不足以特殊到违犯这些准绳关键是为普通状况提供一向支持,尝试将一个繁琐的项目重新组织成一个复杂方式。例如,依据其功用,结构化类的代码或将其分类到不同的文件中,即使 Python 并不强迫你这样做。由于 Python 是一种多范式编程言语,处置成绩的一个弱小办法是创立对象,这就是所谓的面向对象编程。
面向对象编程是一种组织顺序结构的编程范式,让属性和行为可以被看作是独自对象。它的优点是直观和易于操作,许多教程都很好地解释了这些概念。
10. 适用性胜过地道这句格言与前一句相矛盾,它提示我们保持它们之间的平衡
11. 永远不要默默地无视错误放差错误最终会留下隐式 Bug,并且这些 Bug 更难被发现。Python 提供了强健的错误处置,与其他言语相比,顺序员运用该工具并不难。
try:
x = int(input("Please enter an Integer: "))
except ValueError:
print("Oops! This is not an Integer.")
except Exception as err:
print(err)
else:
print('You did it! Great job!')
finally:
print('ヽ(✿゚▽゚)ノ')
# 1. 这段代码能够中缀。
# 2. 假设出现值错误就会触发。
# 3. 处置值错误之外的错误。
# 4. 假设没有触发错误就执行。
# 5. 不管能否触发错误都执行。
依据 Python 文档:“即使一个语句或表达式在语法上是正确的,在试图执行它时也能够会招致错误。”特别是关于大型项目,我们不希望在耗时的计算后,代码崩溃。这就是异常管理的魅力所在。
12. 除非明白需求这样做在某些状况下,小错误不会困扰你。不过,也许你想捕获特定错误。要取得关于特定错误音讯的更多细节,我建议阅读官方的内置异常文档并找到你需求的内容。
https://docs.python.org/3/library/exceptions.html
13. 面对不置可否,拒绝猜测重要的是要不断学习,享用应战,容忍歧义。我们都不知道最终会怎样。——玛蒂娜·霍纳
这句话优雅而抒情,但在编程中不是一个好的隐喻。歧义能够是指不清楚的语法、复杂的顺序结构或触发错误音讯的错误。例如,第一次运用numpy模块时的一个复杂错误:
import numpy as np
a = np.arange(5)
print(a < 3)
if a < 3:
print('smaller than 3')
ValueError: 具有多个元素的数组的真值不明白,请运用 a.any() 或 a.all()
假设执行下面代码,你将在输入中发现一个由 5 个布尔值组成的数组,表明值在 3 以下。因此,if语句不能够确定形状。音讯中显示的内置函数.all() 和.any()用于替代 And/Or。
import numpy as np
a = np.array([True, True, True])
b = np.array([False, True, True])
c = np.array([False, False, False])
print(a.all())
print(a.any())
print(b.all())
print(b.any())
print(c.all())
print(c.any())
输入表明,.all()仅在一切项都为True时才前往True,而.any()在有一项为True时就前往True。
14. 处置成绩最直接的办法应该有一种,最好只要一种 (责任编辑:admin)