我目前正在阅读《Dive Into Python》的第5.8章,Mark Pilgrim说:
“Python中没有常量。如果你足够努力,一切都可以改变。这符合Python的核心原则之一:应该避免不良行为,但不应禁止。如果你真的想改变None的值,你可以这样做,但当你的代码无法调试时,请不要来找我。”
我在解释器中尝试了这个方法。
此外,
所以我猜 'None = ' 在任何情况下都不起作用。
“Python中没有常量。如果你足够努力,一切都可以改变。这符合Python的核心原则之一:应该避免不良行为,但不应禁止。如果你真的想改变None的值,你可以这样做,但当你的代码无法调试时,请不要来找我。”
我在解释器中尝试了这个方法。
None = "bad"
我遇到了一个SyntaxError: assignment to None
只是出于好奇,你怎么改变None的值?
编辑:
有趣的是:
>>> import __builtin__
>>> __builtin__.None is None
True
>>> None
>>> None = "bad"
File "<stdin>", line 1
SyntaxError: assignment to None
>>> __builtin__.None = "bad"
File "<stdin>", line 1
SyntaxError: assignment to None
>>> setattr(__builtin__, "None", "bad")
>>> __builtin__.None
'bad'
>>> None
>>> __builtin__.None is None
False
>>> __builtin__.None = None
File "<stdin>", line 1
SyntaxError: assignment to None
此外,
>>> class Abc:
... def __init__(self):
... self.None = None
...
File "<stdin>", line 3
SyntaxError: assignment to None
>>> class Abc:
... def __init__(self):
... setattr(self,'None',None)
...
>>>
所以我猜 'None = ' 在任何情况下都不起作用。
True = False
的操作,而且这样做会产生您想要的效果。 - viraptor