如何在Python中更改None的值?

时间:2010-03-29 02:25:21

标签: python syntax

我目前正在阅读Dive Into Python的第5.8章,Mark Pilgrim说:

  

Python中没有常量。如果你足够努力,一切都可以改变。这符合Python的核心原则之一:不应该阻止不良行为但不禁止行为。如果你真的想要更改None的值,你可以这样做,但是当你的代码无法调试时,不要来找我。

我在翻译中尝试了这个

None = "bad"

我得到了 SyntaxError:赋值为无

出于好奇,你怎么改变无?

编辑:

有趣的是:

>>> 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)
... 
>>> 

所以我猜'无='只是在任何情况下都不起作用

1 个答案:

答案 0 :(得分:13)

首先必须安装Python的版本(我认为它必须是2.2或更早版本)。在2.4及更新版本(我相信2.3)中,有问题的分配是语​​法错误。唉,马克的优秀书现在有点过时了。