Python变量命名规范

10 投票
5 回答
5152 浏览
提问于 2025-04-17 09:27

我正在尝试切换到PEP8命名规范(之前我用的是个人的CamelCase命名法),我想知道大家是怎么处理那些可能会覆盖现有函数或变量的情况的。

比如说,有这样的代码:

open, high, low, close, sum = row

这段代码会覆盖掉“open”和“sum”这两个函数。首先,如果我不使用一个好的IDE,我甚至都不会注意到我刚刚覆盖了这些重要的基本函数。其次,你们会怎么给这些变量命名呢?

在这个例子中,我本来会用匈牙利命名法,这样就不会遇到任何潜在的问题了。

谢谢!

5 个回答

5

在这种情况下,我会使用一个叫做 namedtuple 的东西。这样的话,名字就会变得更具体,比如 data.opendata.low 等等。

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

data = Data(*row)

这样可以避免和内置函数的名字冲突,同时也能让代码看起来更清晰易懂。

8

我会使用 open_sum_

10

为什么不直接选择不冲突的名字呢?比如说用 opening_price(开盘价)、closing_price(收盘价)和 total(总计)来表示它们的意思。虽然可以像其他回答里提到的那样给命名空间加上前缀,但对于局部变量来说,这其实是不必要的。无论你用什么编程语言,了解保留字是你的责任;这些保留字其实也不多。

撰写回答