In meinem Programm (geschrieben in Python 3.4) Ich habe eine Variable, die verschiedenen Flags enthält, so zum Beispiel:Schaltet ein einzelnes Bit in Flags sicher mit Python-Ganzzahlen mit variabler Länge?
FLAG_ONE = 0b1
FLAG_TWO = 0b10
FLAG_THREE = 0b100
status = FLAG_ONE | FLAG_TWO | FLAG_THREE
andere Flagge Einstellung leicht mit
status |= FLAG_FOUR
Aber was, wenn ich getan werden kann, explizit eine Flagge löschen wollen? Ich würde tun
status &= ~FLAG_THREE
Ist dieser Ansatz sicher? Da die Größe einer Ganzzahl in Python nicht definiert ist, was ist, wenn status
und FLAG_THREE
sich in der Größe unterscheiden?
(status
Bedürfnisse ein Bit-Feld sein, weil ich diesen Wert für ein Hardware-Protokoll benötigen.)
Haben Sie versucht zu finden, wo dieses Verhalten in den offiziellen Python-Dokumenten definiert ist? – jfs
Ich habe die Dokumentationsseiten durchgesehen, konnte aber den Hauptpunkt über das skizzierte Verhalten nicht so klar finden wie auf den Wiki-Seiten. Es ist sehr wahrscheinlich, dass ich etwas übersehen habe, natürlich. –