'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
  • allany
  • 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不应该与函数具有相同的名称。