考虑这个简单的例子:为什么蟒蛇不会引发NameError
i = 10
if i != id:
print i
由于id
没有在这里定义,所以我是假设得到NameError: name 'id' is not defined
但它不会提出任何。
但在这种情况下:
id = 10
if i != id:
print i
它实际上提出了一个NameError
例外i
。所以任何人都可以向我解释这种行为?
考虑这个简单的例子:为什么蟒蛇不会引发NameError
i = 10
if i != id:
print i
由于id
没有在这里定义,所以我是假设得到NameError: name 'id' is not defined
但它不会提出任何。
但在这种情况下:
id = 10
if i != id:
print i
它实际上提出了一个NameError
例外i
。所以任何人都可以向我解释这种行为?
id
是一个内置函数,所以它实际上被定义了。为您的变量使用另一个名称。
这里是所有的built-in functions的列表。
'id'是一个[内建函数](http://docs.python.org/2/library/functions.html#id)。 –