będę dziwny głos out (ponieważ wszystkie odpowiedzi są decrying wykorzystanie faktu, że False == 0
i True == 1
, jako gwarancji językowych), a ja twierdzą, że korzystanie z tego faktu, aby uprościć kod jest perfekcyjnie.
Historycznie, operacje logiczne prawda/fałsz zwykle używają 0
dla false i 1
dla true; w trakcie cyklu życia Pythona 2.2, Guido zauważył, że zbyt wiele modułów rozpoczęło się od przydziałów takich jak false = 0; true = 1
, a to spowodowało, że wznowiono standardową i bezużyteczną wariację (ta ostatnia, ponieważ kapitalizacja wartości true i false była wszędzie - niektóre używane all-caps, niektóre małe litery, niektóre początkowe cap) i tak wprowadzono podklasę bool
z int
i jej stałych True
i.
Było sporo pushback w czasie, ponieważ wielu z nas obawiał się, że nowy typ i stałe zostaną wykorzystane przez początkujących Pythona do ograniczać zdolności języku, ale Guido był nieugięty, że byliśmy po prostu pesymistyczny: nikt nie zawsze rozumiem Pythona tak źle, na przykład, aby uniknąć całkowicie naturalnego wykorzystania indeksów listy, lub w podsumowaniu, lub innych tak doskonale zrozumiałych i przydatnych idiomów.
odpowiedź na tego wątku udowodnić mieliśmy rację: jak się obawialiśmy, całkowite niezrozumienie roli tego typu i stałych został pojawiły, a ludzie są unikając, a gorzej !, zachęcając innych do uniknięcia , doskonale naturalny Python konstruuje na rzecz bezużytecznych zawirowań.
Walka pod prąd takiego nieporozumienia, wzywam wszystkich do używać Python jako Python, nie próbując zmusić go do formy z innych języków, których funkcjonalność i preferowany styl są zupełnie inne. W Pythonie, Prawda i fałsz są 99,9% jak 1 i 0, różniących wyłącznie w ich str(...)
(a tym samym repr(...)
) formie - dla każdy innej operacji oprócz stringification, po prostu czuć się swobodnie z nich korzystać bez skurczów. Że idzie do indeksowania, arytmetyki, operacji bitowych, etc, etc, etc.
To jest w zasadzie kopią http://stackoverflow.com/questions/2764017/is-false-0-and-true-1-in-python-an-implementation-detail-or-is- to gwarancja, której odpowiedzi również stanowią ciekawą lekturę! – EOL