id' 在 Python 中是个坏变量名
为什么在Python中把变量命名为 id
是不好的呢?
9 个回答
63
我可能要说一些不太受欢迎的话:id()
是一个比较特殊的内置函数,在实际的业务逻辑中很少用到。因此,我觉得在一个结构紧凑、写得很好的函数里使用它作为变量名没有问题,因为在那种情况下,很明显这个 id 并不是指那个内置函数。
118
在PEP 8 - Python 代码风格指南中,有一段指导意见出现在描述性:命名风格的部分:
single_trailing_underscore_
:根据约定使用这个后缀,以避免与Python的关键字冲突,例如:
Tkinter.Toplevel(master, class_='ClassName')
所以,来回答这个问题,一个符合这个指导的例子是:
id_ = 42
在变量名中加上这个后缀下划线,可以让人更清楚地理解这个变量的用途(对于那些熟悉PEP 8指导的人来说)。
193
id()
是一个非常基础的内置函数:
关于模块
__builtin__
中内置函数id
的帮助信息:id(...) id(object) -> integer Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it's the object's memory address.)
一般来说,使用与关键字或内置函数同名的变量名是个坏主意,即使这样做是被允许的。