Nota: Anche se questo contiene Python, non è specificamente su Python. È più in generale riguardo l'aspettarsi un certo comportamento da una lingua che non è necessariamente la stessa tra compilatori / interpreti.
Quindi ho trovato questa domanda:
How do I convert a boolean to int in Python? Can I just do
int(mybool)
?
La mia risposta è stata scrivere:
1 if mybool else 0
Il mio ragionamento era che il "casting" cieco su int
si basava sull'implementazione interna del compilatore / interprete. E chi lo sa, se l'esecuzione di un interprete diverso int(mybool)
potrebbe restituire qualcos'altro. Dichiarare esplicitamente il valore per un valore "verità" e per un valore "falso" produrrà sempre il comportamento previsto.
Questo è sicuramente qualcosa che si può prendere in considerazione per la maggior parte delle lingue.
Sono troppo esigente per questo? So di aver scritto int(mybool)
me stesso in passato. E quella domanda mi ha fatto pensare: era ok? Dato che questo è un caso molto comune, i compilatori / interpreti sono abbastanza intelligenti da "fare la cosa giusta" per bool - > conversioni int?
Ora, per il caso speciale per i linguaggi di dattilografia come Python, int(mybool)
potrebbe certamente essere una pessima idea, ma altre lingue sono un po 'più chiare sulla loro digitazione.