मैं नहीं समझ सकता क्या नीचे पूर्वता करता __getattribute__()
विशेष विधि और Descriptors
वर्णनकर्ता: __getattribute के माध्यम से गुण के लिए उपयोग की Precendence() __
के संदर्भ में इसका मतलब है मैं किताब से topic("Precedence") - under topic ("Desriptors")
के तहत इस पढ़ Core Python Programming 3 बार, अभी भी इसके माध्यम से नहीं जा सकता .. क्या कोई यह समझा सकता है कि ये प्राथमिकताएं क्या हैं, और कहां उपयोग की जाती है ??
- कक्षा विशेषताओं
- डाटा वर्णनकर्ता
- उदाहरण विशेषताओं
- गैर डेटा वर्णनकर्ता
__getattr__()
करने को डिफ़ॉल्ट रूप से मैं भी python documentation, जहां मैं नीचे बयान पाया पढ़ें: -
उदाहरण के लिए बाइंडिंग, वर्णक आमंत्रण की प्राथमिकता पर निर्भर करता है जिस पर वर्णक विधियों को परिभाषित किया गया है। एक वर्णनकर्ता
__get__()
,__set__()
और__delete__()
के किसी भी संयोजन को परिभाषित कर सकता है। यदि यह__get__()
को परिभाषित नहीं करता है, तो विशेषता तक पहुंचने से डिस्क्रिप्टर ऑब्जेक्ट स्वयं वापस आ जाएगा जब तक कि ऑब्जेक्ट के इंस्टेंस डिक्शनरी में कोई मान न हो। यदि वर्णनकर्ता__set__()
और/या__delete__()
परिभाषित करता है, तो यह एक डेटा वर्णनकर्ता है; यदि यह न तो परिभाषित करता है, तो यह एक गैर-डेटा वर्णनकर्ता है। आम तौर पर, डेटा डिस्क्रिप्टर__get__()
और__set__()
दोनों को परिभाषित करते हैं, जबकि गैर-डेटा वर्णनकर्ताओं के पास केवल__get__()
विधि है।**__set__()**
और**__get__()**
साथडाटा वर्णनकर्ता हमेशा एक उदाहरण शब्दकोश में एक नई परिभाषा ओवरराइड परिभाषित किया। इसके विपरीत, गैर-डेटा वर्णनकर्ताओं द्वारा उदाहरणों को ओवरराइड किया जा सकता है।
अजगर विधियों (
staticmethod()
औरclassmethod()
सहित) गैर डेटा वर्णनकर्ता के रूप में लागू कर रहे हैं। तदनुसार, उदाहरण विधियों को फिर से परिभाषित और ओवरराइड कर सकते हैं। यह अलग-अलग उदाहरणों को प्राप्त करने की अनुमति देता है जो समान वर्ग के अन्य उदाहरणों से भिन्न व्यवहार प्राप्त करते हैं।
क्या कोई भी यह बताने के लिए एक छोटा सा उदाहरण दे सकता है कि first paragraph
क्या है? यह भी कहकर इसका मतलब है - override a redefinition in an instance dictionary
??
संबंधित: [कौन सा पायथन भाषा नियम वर्णनकर्ता को पहले पाया जा सकता है?] (Http://stackoverflow.com/questions/1865902/), [वर्णनकर्ता और पायथन-प्रदत्त विशेषताओं] (http://stackoverflow.com/प्रश्न/10536539 /) –
@PiotrDobrogost .. उन लिंक के लिए धन्यवाद पियेटर .. :) –