所以我试图切换到PEP8表示法(来自一个相当个人的CamelCase表示法),我想知道你们是如何解决现有函数/变量被覆盖的情况?
e.g。有类似的东西:
open, high, low, close, sum = row
已经覆盖了“open”和“sum”函数。 首先,如果我不使用一个好的IDE,我甚至不会注意到我刚刚覆盖了重要的基本功能。其次,你如何命名变量呢? 在这个例子中,我会使用匈牙利语应用程序,并且根本不会遇到任何潜在的问题。
谢谢!
答案 0 :(得分:9)
为什么不选择不冲突的名字?例如opening_price
,closing_price
和total
,如果这是他们所代表的。虽然可以像在其他回复中一样限定命名空间,但对于局部变量来说肯定不需要。无论你编写什么语言,你都应该知道保留的词;它们中没有那么多。
答案 1 :(得分:8)
我会使用open_
和sum_
。
答案 2 :(得分:5)
在这种特殊情况下,我会使用namedtuple
。这会将这些名称变为合格名称(data.open
,data.low
等)。
from collections import namedtuple
Data = namedtuple('Data', ['open', 'high', 'low' 'close', 'sum'])
data = Data(*row)
这将消除内置功能造成名称冲突的可能性,并可能提高整体可读性。
答案 3 :(得分:3)
如果它们都是来自同一域的值,则可以使用字典:
params = ('open', 'high', 'low', 'close', 'sum') # defined once
val = dict(zip(params, row)) # for each row
# val == {'open': 12, 'high': 34, 'low': 56, 'close': 78, 'sum': 90}
然后您可以直接访问它们:val['open']
。您可以迭代它们val.iteritems()
,依此类推。
答案 4 :(得分:0)
Pep8建议使用尾随下划线,但是也有人提到在可能的情况下使用变量的同义词会更好。