Python documentation about the is
operator का कहना है:एक विधि खुद के समान क्यों नहीं है?
ऑपरेटरों
is
और वस्तु पहचान के लिएis not
परीक्षण:x is y
सच है अगर और केवल तभीx
औरy
एक ही वस्तु है।x is not y
उलटा सच्चाई मूल्य उत्पन्न करता है।
की कि कोशिश करते हैं:
>>> def m():
... pass
...
>>> m is m
True
Python documentation also says:
कारण स्वत: कचरा-संग्रह, मुक्त सूचियों, और वर्णनकर्ता के गतिशील स्वभाव के हैं, तो आप उचित रूप में देख सकते हैं
is
ऑपरेटर के कुछ उपयोगों में असामान्य व्यवहार, जैसे comp उदाहरण विधियों, या स्थिरांक के बीच arisons। अधिक जानकारी के लिए अपने दस्तावेज़ीकरण की जांच करें।
>>> class C:
... def m():
... pass
...
>>> C.m is C.m
False
मैं और अधिक स्पष्टीकरण के लिए खोज की है, लेकिन मैं किसी भी खोजने के लिए सक्षम नहीं था।
C.m is C.m
क्यों झूठा है?
मैं पायथन 2.x का उपयोग कर रहा हूं। जैसा कि नीचे दिए गए उत्तरों में उल्लेख किया गया है, पायथन 3.x C.m is C.m
में सत्य है।
पूर्णता के लिए, [वर्णनकर्ता] (http://docs.python.org/reference/datamodel.html#invoking-descriptors) इस गतिशील विशेषता लुकअप करें। यह सुपरक्लास को भी विशेषता पहुंच को रोकता है। –
हां, हालांकि आप '__getattr__' का उपयोग करके एक उदाहरण भी लिख सकते हैं। – katrielalex