Jestem obecnie czytając rozdział 5.8 Dive Into Python i Mark Pilgrim mówi:Jak zmienić wartość None w Pythonie?
There are no constants in Python. Everything can be changed if you try hard enough. This fits with one of the core principles of Python: bad behavior should be discouraged but not banned. If you really want to change the value of None, you can do it, but don't come running to me when your code is impossible to debug.
Próbowałem to w tłumacza
None = "bad"
dostaję SyntaxError: Przyporządkowanie do Żaden
Po prostu z ciekawości, jak się zmieniasz Brak?
EDIT:
Co ciekawe:
>>> 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
także
>>> 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)
...
>>>
Więc myślę 'None =' po prostu nie działa w dowolnym kontekście
Myślę, że 2.3 dało ci SyntaxWarning, fwiw. – perimosocordiae
Dzięki za odpowiedź, chyba nie ma miłości dla bandytów w nowszych wersjach. –
Możesz nadal robić "True = False" w 2.6. I będzie to miało pożądany skutek. – viraptor