繁体   English   中英

Python变量命名约定

[英]Python variables naming convention

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

例如:

open, high, low, close, sum = row

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

谢谢!

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

我会使用open_sum_

在这种特殊情况下,我会使用一个namedtuple 这会将这些名称变为合格的名称( data.opendata.low等)。

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

data = Data(*row)

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

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

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建议使用尾随下划线,但是也有人提到在可能的情况下使用同义词来表示变量会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM