Python变量命名约定

Mup*_*pet 9 python pep8

所以我试图切换到PEP8表示法(来自一个相当个人的CamelCase表示法),我想知道你们是如何解决现有函数/变量被覆盖的情况?

例如:

open, high, low, close, sum = row
Run Code Online (Sandbox Code Playgroud)

将会覆盖"开放"和"总和"功能.首先,如果我不使用一个好的IDE,我甚至不会注意到我刚刚覆盖了重要的基本功能.其次,你如何命名变量呢?在这个例子中,我会使用匈牙利语应用程序,根本不会遇到任何潜在的问题.

谢谢!

Sid*_*Bob 10

为什么不选择没有冲突的名字呢?比如opening_price,closing_pricetotal如果这就是他们代表什么.虽然可以像在其他回复中一样限定命名空间,但对于局部变量来说肯定不需要.无论你编写什么语言,你都应该知道保留的词; 它们中没有那么多.


Mar*_*nen 8

我会用open_sum_.

  • 虽然这是PEP8建议的,但为什么不选择不冲突的名字呢?比如`opening_price`,`closing_price`和`total`,如果这就是他们所代表的.虽然可以像在其他回复中一样限定命名空间,但对于局部变量来说肯定不需要.无论你编写什么语言,你都应该知道保留的词; 它们中没有那么多. (11认同)

Xio*_*ion 5

在这种特殊情况下,我会使用一个namedtuple.这就把这些名称转换为符合条件的(data.open,data.low,等).

from collections import namedtuple
Data = namedtuple('Data', ['open', 'high', 'low' 'close', 'sum'])

data = Data(*row)
Run Code Online (Sandbox Code Playgroud)

这将消除内置函数名称冲突的可能性,并可能提高整体可读性.