Python变量命名约定

Python变量命名约定,python,pep8,Python,Pep8,因此,我尝试切换到PEP8表示法(从一个相当私人的CamelCase表示法),我想知道你们是如何处理现有函数/变量将被覆盖的情况的 e、 g.有类似于: open, high, low, close, sum = row 将已经覆盖“打开”和“求和”函数。 首先,如果我不使用好的IDE,我甚至不会注意到我刚刚覆盖了重要的基本函数。第二,如何命名变量? 在这个例子中,我会使用匈牙利语的应用程序,不会遇到任何潜在的问题 谢谢 我会使用打开和求和在这种特殊情况下,我会使用命名双倍。这会将这些名称转换

因此,我尝试切换到PEP8表示法(从一个相当私人的CamelCase表示法),我想知道你们是如何处理现有函数/变量将被覆盖的情况的

e、 g.有类似于:

open, high, low, close, sum = row
将已经覆盖“打开”和“求和”函数。 首先,如果我不使用好的IDE,我甚至不会注意到我刚刚覆盖了重要的基本函数。第二,如何命名变量? 在这个例子中,我会使用匈牙利语的应用程序,不会遇到任何潜在的问题


谢谢

我会使用
打开
求和
在这种特殊情况下,我会使用
命名双倍
。这会将这些名称转换为限定名称(
data.open
data.low
,等等)


这将消除与内置函数发生名称冲突的可能性,并可能提高整个过程的可读性。

如果它们都是来自同一域的值,您可以使用字典:

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()
等等。

为什么不选择不冲突的名称呢?例如
开盘价
收盘价
总计
,如果它们代表的是这些价格。虽然可以像在其他回复中一样限定名称空间,但局部变量肯定不需要这样做。无论你用什么语言编程,你的工作就是了解保留的单词;没有那么多

Pep8建议使用尾随下划线,但也提到在可能的情况下,为变量使用同义词会更好。

虽然这是Pep8的建议,为什么不选择不冲突的名称呢?例如
开盘价
收盘价
总计
,如果它们代表的是这些价格。虽然可以像在其他回复中一样限定名称空间,但局部变量肯定不需要这样做。无论你用什么语言编程,你的工作就是了解保留的单词;没有那么多。@SideshowBob我认为你应该把你的评论作为答案提交,因为在我看来,这是解决OP问题的最好、最简单、最明显和最惯用的解决方案。伙计们,非常感谢——我将使用Sideshow Bob的解决方案。我没有这样做的最初原因是因为我经常使用这些变量,以至于在任何地方使用诸如
开盘价
之类的东西最终都会显得杂乱无章。因此,正是出于这个原因,我将简单地使用
o,h,l,c
,因为这些变量只在函数中局部使用,而且它们的使用非常频繁,因此尽可能地缩短它们是有意义的。如果你不同意,请告诉我。谢谢短变量名很有诱惑力,我们都这么做,这是毫无疑问的,但除了循环索引之类的东西外,它们通常不被认为是好的软件工程实践。尤其是
o
l
,它们在某些字体中或在匆忙中看起来很像
0
1
。如果您愿意,请务必缩短一点-
openprice
而不是
open\u price
。如果必须使用优步短名称,请在评论中解释它们的含义。
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}