Я сейчас читаю главу 5.8 Dive Into Python, и Марк Пилигрим говорит:
В Python нет констант. Все можно изменить, если вы постараетесь достаточно. Это соответствует одному из основных принципов Python: плохое поведение следует поощрять, но не запрещать. Если вы действительно хотите изменить значение None, вы можете это сделать, но не прибегайте ко мне, когда ваш код невозможно отладить.
Я попробовал это в интерпретаторе
None = "bad"
Я получаю
Ошибка синтаксиса: присвоение None
Просто из любопытства, как вы меняете None?
EDIT:
Интересно:
>>> 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 =» просто не работает ни в каком контексте