2017-06-15 3 views
0

In Python 3, können Sie nicht zu True, False oder None zuweisen. Auf CPython können Sie jedoch NotImplemented zuweisen.Warum können Sie NotImplemented zuweisen?

>>> False 
False 
>>> False = 42 
SyntaxError: can't assign to keyword                  ' 
>>> NotImplemented 
NotImplemented 
>>> NotImplemented = 42 
>>> NotImplemented 
42 

Was ist der Grund dafür?

Antwort

0

Die Python-Konstanten enumerated here sind nicht "konstant" (sie können neu zugewiesen werden), außer für diejenigen, die explizit sagen: "Zuweisungen zu X sind illegal und verursachen einen SyntaxError." Diese sind: False, True, None und __debug__. Dies wird ausdrücklich in einer Notiz darauf hingewiesen:

Die Namen None, False, True und __debug__ nicht (Zuweisungen zu ihnen, auch als Attributnamen, erhöhen Syntax) neu zugewiesen werden, so können sie in Betracht gezogen werden „ wahre "Konstanten.

Es ist erwähnenswert, dass assigning to __debug__ only became illegal in version 2.7 und False und True später. Es ist möglich, dass es in einer weiteren Version illegal ist, NotImplemented zuzuweisen.

Verwandte Themen