10

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

例如有类似的东西:

open, high, low, close, sum = row

已经覆盖了“open”和“sum”函数。首先,如果我不使用好的 IDE,我什至不会注意到我刚刚覆盖了重要的基本功能。其次,您将如何命名变量?在此示例中,我将使用应用程序匈牙利语,根本不会遇到任何潜在问题。

谢谢!

4

5 回答 5

10

为什么不直接选择不冲突的名称?例如opening_price,如果这就是他们所代表的closing_pricetotal虽然可以像在其他回复中那样限定命名空间,但对于局部变量来说肯定不需要。无论你用什么语言编程,你的工作就是知道保留字;没有那么多。

于 2012-01-04T11:52:23.880 回答
8

我会使用open_and sum_

于 2012-01-03T15:25:55.737 回答
5

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

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

data = Data(*row)

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

于 2012-01-03T15:26:42.403 回答
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()等等。

于 2012-01-03T15:27:19.463 回答
0

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

于 2018-02-10T13:45:53.317 回答