'id'是Python中错误的变量名

时间:2020-03-05 18:57:18  来源:igfitidea点击:

为什么在Python中命名变量id不好?

解决方案

回答

因为它是内置函数的名称。

回答

用内置函数命名任何变量都是不好的。原因之一是因为它会使不知道该名称被覆盖的读者感到困惑。

回答

'id'是Python中的内置方法。给'id'赋值将覆盖该方法。最好先使用标识符,如" some_id"中所述,或者将其用于其他大小写方法。

内置方法采用单个参数,并为我们传递的对象的内存地址返回一个整数。

>>>id(1)

9787760

>>>x = 1

>>>id(x)

9787760

回答

id()是一个基本的内置函数:

Help on built-in function id in module
  __builtin__:
  
  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.)

通常,即使允许使用使用任何语言使关键字或者内置函数都黯然失色的变量名也是一个坏主意。

回答

我可能会在这里说一些不受欢迎的话:id()是一个相当专业的内置函数,很少在业务逻辑中使用。因此,在紧密且编写良好的函数中将其用作变量名时,我看不出有任何问题,其中很明显id并不表示内置函数。

回答

因为python是一种动态语言,所以给变量和函数起相同的名字通常不是一个好主意。 id()是python中的函数,因此建议不要使用名为id的变量。请记住,这适用于我们可能使用的所有函数...变量的名称不应与函数的名称相同。

回答

id是一个内置函数,它提供对象的内存地址。如果我们命名函数" id"之一,则必须说" builtins.id"才能获得原始函数。在全局范围内重命名id会混淆除小脚本之外的任何内容。

但是,只要使用本地名称,就可以将内置名称重用为变量并没有什么坏处。 Python具有许多内置函数,这些函数(1)具有通用名称,而(2)无论如何都不会使用太多。可以将它们用作局部变量或者作为对象的成员,因为从上下文可以明显看出我们正在做什么:

例子:

def numbered(filename):
  file = open(filename)
  for i,input in enumerate(file):
    print "%s:\t%s" % (i,input)
  file.close()

一些带有诱人名称的内置函数:

  • id
  • 文件
  • 清单
  • 地图
  • 全部,任何
  • 复杂
  • dir
  • 输入
  • 切片
  • 缓冲