SORU
17 Kasım 2011, PERŞEMBE


Neden int bir alt sınıfı bool mi?

Bir bool depolama ile python-memcached memcached zaman bir tamsayı olarak döndürülür fark ettim. Kütüphane kodunu kontrol isinstance(val, int) bir tamsayı değeri bayrağı kontrol etmek için bir yer olduğunu bana gösterdi.

Python kabuğunda test ettim ve şunları fark ettim:

>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True

Ama neden tam olarak bool int sınıfıdır?

Bir bakıma mantıklı çünkü bir boolean temel olarak bir int olan sadece iki değerleri ama ihtiyacı çok daha az operasyon alanı daha gerçek bir tam sayı (aritmetik, sadece tek bir bit depolama alanı)....

CEVAP
17 Kasım 2011, PERŞEMBE


http://www.peterbe.com/plog/bool-is-int bir yorum

Eğer bool türü zaman yanlarında olsaydı gayet mantıklı, python (bazen yaklaşık 2.2 veya 2.3) eklendi.

Gerçek bool bir tür giriş öncesinde, 0 ve 1 idi doğruluk değeri, C89 benzer resmi gösterimi. Önlemek için gereksiz yere ideal olmayan kırılma ama Kanun, yeni bool tipi çalışma 0 ve 1 gibi çalışması gerekli. Bu sadece doğruluk değeri,ötesinde ama tüm integral işlemleri. Kimse bir boolean kullanmanızı tavsiye ederim sayısal bir bağlamda sonuç, ne de çoğu insan test tavsiye ederim gerçek değerini belirlemek için eşitlik, kimse sabit olduğunu öğrenmek istedim sadece varolan kodu bu şekilde ne kadar yol. Bu nedenle bu kararı Doğru ve Yanlış olarak maskeli balo 1 ve 0 sırasıyla. Bu sadece bir. dilsel evrim tarihi eser.

Kredi bu güzel açıklama için dman13 gider.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • theatre2film

    theatre2film

    12 NİSAN 2006