>>> False in [0]
True
>>> type(False) == type(0)
False
कारण मैं इस पर ठोकर खाई:पायथन "इन" प्रकार की जांच नहीं करता है?
मेरी यूनिट-परीक्षण के लिए मैं अपने प्रकार के लिए वैध और अवैध उदाहरण मान सूचियां बनाई हैं। ('मेरे प्रकार' के साथ मेरा मतलब है, वे पाइथन प्रकारों के बराबर 100% नहीं हैं) इसलिए मैं सभी मूल्यों की सूची को पुन: सक्रिय करना चाहता हूं और उम्मीद करता हूं कि वे मेरे मान्य मानों में हैं, और दूसरी तरफ, अगर वे नहीं हैं तो असफल हो जाएं। कि इतनी अच्छी तरह से अब काम नहीं करता:
>>> valid_values = [-1, 0, 1, 2, 3]
>>> invalid_values = [True, False, "foo"]
>>> for value in valid_values + invalid_values:
... if value in valid_values:
... print 'valid value:', value
...
valid value: -1
valid value: 0
valid value: 1
valid value: 2
valid value: 3
valid value: True
valid value: False
पाठ्यक्रम मैं पिछले दो 'वैध' मूल्यों से असहमत के
।
क्या इसका मतलब है कि मुझे वास्तव में अपने वैध_वृत्तियों के माध्यम से पुन: प्रयास करना होगा और प्रकार की तुलना करना होगा?
+1 हम्म, मैंने कभी भी उस पायथन की 'इन' प्रकार की जांच नहीं की है। बहुत ही रोचक । । । – OnesimusUnbound
@ बेनजम्स, हम्म, मुझे आश्चर्य है कि यह पाइथन में बतख टाइपिंग को कैसे तोड़ देगा? – OnesimusUnbound