Je suis actuellement la lecture du chapitre 5.8 de plongée au coeur de Python et Mark Pilgrim dit:Comment changer la valeur de None en Python?
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.
J'ai essayé dans l'interpréteur
None = "bad"
Je reçois un SyntaxError: affectation à Aucun
Juste par curiosité comment changez-vous None?
EDIT:
Fait intéressant:
>>> 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
également
>>> 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)
...
>>>
donc je suppose que 'None =' ne fonctionne tout simplement pas dans un contexte
Je pense que 2.3 vous a donné un SyntaxWarning, fwiw. – perimosocordiae
Merci pour la réponse, je suppose qu'il n'y a plus d'amour pour les voyous dans les versions les plus récentes. –
Vous pouvez toujours faire 'True = False' dans 2.6 si. Et cela aura l'effet que vous voulez. – viraptor