Nel mio programma (scritto in Python 3.4) Ho una variabile che contiene diverse bandiere, così per esempio:Si sta disabilitando un singolo bit in flags con gli interi Python di lunghezza variabile?
FLAG_ONE = 0b1
FLAG_TWO = 0b10
FLAG_THREE = 0b100
status = FLAG_ONE | FLAG_TWO | FLAG_THREE
Impostazione un'altra bandiera può facilmente essere fatto con
status |= FLAG_FOUR
Ma cosa succede se io vuoi esplicitamente cancellare una bandiera? Lo farei
status &= ~FLAG_THREE
Questo approccio è sicuro? Poiché la dimensione di un intero in Python non è definita, cosa succede se status
e FLAG_THREE
differiscono nelle dimensioni?
(status
ha bisogno di essere un campo di bit, perché ho bisogno di questo valore per un protocollo hardware.)
Hai provato a trovare dove questo comportamento è definito nei documenti Python ufficiali? – jfs
Ho dato un'occhiata alle pagine della documentazione ma non ho trovato il punto principale sul comportamento delineato chiaramente come nelle pagine wiki. È molto probabile che abbia trascurato qualcosa, ovviamente. –