तो मैं एक वैरिएबल पर सवाल कैसे कर सकता हूं जो कोई नहीं है?
उपयोग is
ऑपरेटर, इस
if variable is None:
क्यों इस काम करता है की तरह?
के बाद से None
अजगर में NoneType
के एकमात्र सिंगलटन वस्तु है, हम यदि किसी वैरिएबल उस में None
या नहीं की जाँच करने के is
ऑपरेटर का उपयोग कर सकते हैं।
is
docs से हवाला देते हुए,
ऑपरेटरों is
और वस्तु पहचान के लिए is not
परीक्षण: x is y
सच है यदि और केवल यदि x
और y
एक ही वस्तु है। x is not y
उलटा सच्चाई मूल्य उत्पन्न करता है।
चूंकि None
उसमें केवल एक ही हो सकता है, is
None
जाँच करने के लिए पसंदीदा तरीका होगा।
तरह None
हमेशा is
या is not
से किया जाना चाहिए एकमात्र करने के लिए घोड़े के मुंह
Python's Coding Style Guidelines - PEP-008 का हवाला देते हुए (संयुक्त रूप से खुद को गुइडो द्वारा परिभाषित) से यह सुना,
तुलना , समानता ऑपरेटरों कभी नहीं।
मुझे लगता है कि इसका उत्तर दिया गया था [यहां] (http://stackoverflow.com/questions/14247373/python-none-comparison-should-i-use-is-or) और स्पष्ट रूप से कहीं – yorodm
से पहले यदि कोई नहीं है आपकी विधि का एकमात्र मूल्य जिसके लिए 'बूल (रिटर्न वैल्यू) '' गलत' बराबर है, फिर 'यदि नया नहीं है:' ठीक काम करना चाहिए। यह कभी-कभी अंतर्निर्मित libs में होता है - उदाहरण के लिए, ['re.match'] (https://docs.python.org/2/library/re.html#re.match) या तो कोई नहीं या एक सच्चा मैच वस्तु। – Kevin