作为回答另一个问题的一部分,我写了下面的代码,其行为乍一看似乎很奇怪:
print True # outputs true
True = False; print True # outputs false
True = True; print True # outputs false
True = not True; print True # outputs true
Run Code Online (Sandbox Code Playgroud)
谁能解释这种奇怪的行为?我认为这与Python的对象模型有关,但我不确定.
它是Cygwin下的2.5.2版本.
我正在探索REPL,我注意到了该__builtins__模块。
我进入了
>>> __builtins__.
Run Code Online (Sandbox Code Playgroud)
并按下Tab键,那么Python REPL给我看了内置列表标识,其中包括abs,len,zip和True,False,None等。
毫无疑问,第一个测试通过了:
>>> __builtins__.zip is zip
True
Run Code Online (Sandbox Code Playgroud)
但是第二个没有:
>>> __builtins__.None is None
File "<stdin>", line 1
__builtins__.None is None
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
为什么?