'id'是Python中一个不好的variables名
为什么在Python中命名variablesid
是不好的?
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.)
一般来说,使用任何语言的关键字或内置函数的variables名是一个坏主意,即使它是允许的。
id
是一个内置的函数,它提供了一个对象的内存地址。 如果你命名了你的一个函数id
,你必须说__builtins__.id
才能得到原始的。 全局重命名只是一个小脚本而已。
但是,只要使用本地,重用内置名称作为variables并不是那么糟糕。 Python有很多内置的函数,(1)有常用的名字,(2)反正你用不了多less。 使用这些作为局部variables或作为一个对象的成员是好的,因为从上下文显然你正在做什么:
例:
def numbered(filename): file = open(filename) for i,input in enumerate(file): print "%s:\t%s" % (i,input) file.close()
一些内置的诱人的名字:
-
id
-
file
-
list
-
map
-
all
,any
-
complex
-
dir
-
input
-
slice
-
buffer
我可能会说这里不受欢迎: id()
是一个相当专业的内置函数,很less在业务逻辑中使用。 因此,我没有看到使用它作为一个紧凑,写得很好的函数中的variables名称的问题,很明显,id并不意味着内置函数。
在“ PEP 8 – Python代码样式指南”中 ,以下指南将出现在“ 描述性:命名样式 :
single_trailing_underscore_
:single_trailing_underscore_
使用,以避免与Python关键字冲突,例如
Tkinter.Toplevel(master, class_='ClassName')
所以,要回答这个问题,一个适用这个指南的例子是:
id_ = 42
在variables名中包含尾部的下划线使得意图清晰(熟悉PEP 8中的指导)。
在内置函数之后命名任何variables是不好的。 其中一个原因是因为读者不知道这个名字会被覆盖,这可能会让人困惑。
因为这是一个内build函数的名字。
'id'是Python中的一个内置方法。 为“id”赋值将覆盖该方法。 最好在“some_id”之前使用一个标识符,或者使用不同的大写方法。
内置方法采用一个参数,并为您传递的对象的内存地址返回一个整数。
>>>
id(1)
9787760
>>>
x = 1
>>>
id(x)
9787760
因为python是一种dynamic语言,所以给variables和函数使用相同的名称通常不是一个好主意。 id()是python中的一个函数,所以build议不要使用名为id的variables。 考虑到这一点,这适用于您可能使用的所有函数…variables不应该与函数具有相同的名称。