जब तक मैं पागल नहीं हूं if None not in x
और if not None in x
समकक्ष हैं। क्या कोई पसंदीदा संस्करण है? मुझे लगता है कि None not in
अधिक अंग्रेजी-वाई है और इसलिए अधिक पायथनिक है, लेकिन not None in
अन्य भाषा वाक्यविन्यास की तरह है। क्या कोई पसंदीदा संस्करण है?"कोई भी नहीं" बनाम "कोई नहीं"
उत्तर
वे एक ही बाइटकोड को संकलित करते हैं, इसलिए हाँ वे बराबर हैं।
>>> import dis
>>> dis.dis(lambda: None not in x)
1 0 LOAD_CONST 0 (None)
3 LOAD_GLOBAL 1 (x)
6 COMPARE_OP 7 (not in)
9 RETURN_VALUE
>>> dis.dis(lambda: not None in x)
1 0 LOAD_CONST 0 (None)
3 LOAD_GLOBAL 1 (x)
6 COMPARE_OP 7 (not in)
9 RETURN_VALUE
documentation भी यह स्पष्ट करता है कि दो बराबर हैं:
x not in s
x in s
का निषेध देता है।
जैसा कि आप उल्लेख करते हैं None not in x
अधिक प्राकृतिक अंग्रेजी है इसलिए मैं इसका उपयोग करना पसंद करता हूं।
यदि आप not y in x
लिखते हैं तो यह अस्पष्ट हो सकता है कि आपका मतलब not (y in x)
या (not y) in x
था। यदि आप not in
का उपयोग करते हैं तो कोई अस्पष्टता नहीं है।
धन्यवाद, आपको पता नहीं था कि आप बाइटकोड की तुलना कर सकते हैं इस। उल्लेख करने के लिए –
अभिव्यक्ति
not (None in x)
(कोष्ठक स्पष्टता के लिए जोड़ा) एक साधारण बूलियन निषेध है। हालांकि,
None not in x
विशेष सिंटेक्स अधिक पठनीय कोड के लिए जोड़ा जाता है (कोई संभावना में के सामने यहाँ वहाँ है, और न ही यह कोई मतलब है, उपयोग करने के लिए और, या, आदि)। यदि यह विशेष मामला जोड़ा गया था, तो इसका इस्तेमाल करें।
ही
कोfoo is not None
बनाम
not foo is None
मुझे लगता है बहुत स्पष्ट पढ़ने के लिए "नहीं है" लागू होता है। एक अतिरिक्त बोनस के रूप में, यदि अभिव्यक्ति एक बड़ी बूलियन अभिव्यक्ति का हिस्सा है, तो नहीं का दायरा तुरंत स्पष्ट होता है।
+1 – Falmarri
- 1. झूठी या कोई नहीं बनाम कोई भी या गलत
- 2. कोई भी मूल्य नहीं
- 3. (कोई भी == System.DBNull.Value) बनाम (कोई भी सिस्टम है। डीबीएनयूएल)
- 4. jquery एनिमेट बनाम बनाम डिस्प्ले: कोई भी
- 5. क्या कोई भी बनाम 2010 बनाम
- 6. प्रदर्शन करता है: कोई नहीं अभी भी
- 7. कोई भी पुन: प्रयोज्य स्निपेट नहीं?
- 8. एचटीएमएल डोम्स, आईडी बनाम कोई आईडी नहीं?
- 9. "कोई नहीं है" और "== कोई नहीं"
- 10. कोई नहीं
- 11. preg_match: दोहराने के लिए कुछ भी नहीं/कोई मुकाबला नहीं
- 12. फ़ंक्शन "कुछ भी नहीं" के बजाय "कोई समाधान नहीं"
- 13. पायथन में कोई भी बनाम खाली स्ट्रिंग
- 14. iBatis कोई पॉप नहीं है जब कोई पंक्ति नहीं है
- 15. स्मार्टी बेंचमार्क, कोई भी?
- 16. कोई भी तर्क उठाने के लिए उचित अपवाद नहीं है यदि कोई भी तर्क
- 17. पायथन 2.4.3: कॉन्फ़िगरर्स। कोई पता नहीं: कोई खंड नहीं: 'स्वरूपक'
- 18. कैसे कोई तिथि नहीं
- 19. toDataURL कोई फ़ंक्शन नहीं
- 20. Django: क्वेरीसमूह कोई नहीं
- 21. कोई परिणाम नहीं मिला
- 22. डिफ़ॉल्ट डिक्ट (कोई नहीं)
- 23. कोई WebAplicationContext नहीं मिला: कोई ContextLoaderListener पंजीकृत नहीं है?
- 24. कोई भी
- 25. डिव कोई कारण नहीं
- 26. कोई सूचकांक नहीं! =?
- 27. कोई वस्तु नहीं है?
- 28. कोई नाम नहीं लगाव
- 29. कोई qmlviewer स्थापित नहीं
- 30. एसवीजी "भरें: कोई नहीं"
यह भी देखें http://stackoverflow.com/questions/2710940 – Gumbo
यदि आप केवल 1 ऑपरेटर को दूसरे ऑपरेटर में बदलते हैं, तो SO पर बहुत सारे प्रश्न डुप्लिकेट होंगे – Falmarri