जब अजगर-मेम्केड के माध्यम से मेमस्कैल्ड में एक बूल का भंडारण करते हैं, तो मैंने देखा कि यह पूर्णांक के रूप में वापस आ गया है। पुस्तकालय के कोड की जाँच ने मुझे दिखाया कि एक जगह है जहाँ isinstance(val, int)
एक पूर्णांक के रूप में मूल्य को चिह्नित करने के लिए जाँच की जाती है।
इसलिए मैंने अजगर के खोल में इसका परीक्षण किया और निम्नलिखित पर ध्यान दिया:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
लेकिन वास्तव में bool
एक उपवर्ग क्यों है int
?
यह इस तरह की समझ में आता है क्योंकि एक बूलियन मूल रूप से एक इंट है जो सिर्फ दो मान ले सकता है लेकिन इसे वास्तविक पूर्णांक (कोई अंकगणित, केवल एक बिट स्टोरेज स्पेस) की तुलना में बहुत कम संचालन / स्थान की आवश्यकता होती है ...।