在 Python 中,有一系列代码风格约定,其中最主要的是 PEP8:
a = b + c遵守 PEP8 可以促进团队合作,提高可读性,降低入门门槛,简化测试自动化等。
在 PEP8 中建议不要使用单字母变量名。然而在 list comprehensions 或 lambda 中使用短名称可以吗?为什么?
答复: 在基本情况下,对于简短的迭代(例如,在 list comprehensions 中用于标记的变量,如 x, i, j)允许使用单字母名称,以避免混淆短表达式。对于复杂表达式,最好提供有意义的名称。
示例:
# 允许: squares = [x**2 for x in numbers] # 更好: squares = [number**2 for number in numbers]
故事 1
在一个银行项目中,我们发现部分函数和参数使用不同的命名约定(CamelCase、snake_case、连字符)。新成员总是搞混这些名称使用的地方,几乎花了两周的时间来解决冲突和重命名变量。
故事 2
在一个数据工程项目中,不遵守缩进,混用了 Tabs 和空格。这导致在不同的开发站上出现 SyntaxError,部分开发人员花了数小时寻找多余的空格。
故事 3
在一个大型教育门户网站上,将短名称和长名称的变量混合使用。例如,一个处理日志的函数叫做 l(),而登录处理器叫做 long,这在许多 IDE 中耗费了大量时间进行导航,并在使用列表中的 l 元素时造成了混淆。