python - how to get derived class name from base class -


मेरे पास एक बेस क्लास व्यक्ति और व्युत्पन्न वर्ग प्रबंधक और < कोड> कर्मचारी । अब, मैं क्या जानना चाहता हूं कि प्रबंधक या कर्मचारी बनाया गया ऑब्जेक्ट है।

उस व्यक्ति को बेलो के रूप में दिया गया है: प्रोजेक्ट से। सीएमएफसीओयर.टिल्ट्स आयात करेंटूलीबायनाम स्कीमा = गेटैट (व्यक्ति, 'स्कीमा', स्कीमा (()))। कॉपी करें () + स्कीमा ((टेक्स्टफिल्ड ('प्रथम नाम', आवश्यक = सत्य, विजेट = StringWidget (लेबल = 'प्रथम नाम', i18n_domain = 'project')), TextField ('अंतिम नाम', आवश्यक = सत्य, विजेट = स्ट्रिंगव्यूजेट (लेबल = 'अंतिम नाम', i18n_domain = 'i5', label_msgid = 'label_pub_city' )) समूह प्रबंधक (बेस कंटेंट): def get_name (स्वयं): सूची = getToolByName (स्वयं, "portal_catalog") लोग = सूची (portal_type = 'व्यक्ति') व्यक्ति = {} लोगों में ऑब्जेक्ट के लिए: fname = object.firstName lname = Object.lastName व्यक्ति ['नाम'] = fname + '' + lname # अगर व्युत्पन्न वर्ग कर्मचारी है तो मैं कर्मचारी की विधि शीर्षक पर जाना चाहता हूं और यदि यह प्रबंधक होता है तो प्रबंधक व्यक्ति की शीर्षक पद्धति पर जाना 'पोस्ट '] = कर्मचारी / प्रबंधक.title () रिटर्न व्यक्ति

प्रबंधक और एम्पल के लिए ओयियां वे हैं (कर्मचारी भी समान है लेकिन कुछ अलग तरीके)

  परियोजना से। व्यक्ति आयात व्यक्ति वर्ग प्रबंधक (व्यक्ति): def शीर्षक (स्वयं): वापसी "प्रबंधक"   

कर्मचारी के लिए शीर्षक 'कर्मचारी' है जब मैं एक व्यक्ति बना देता हूं तो यह या तो प्रबंधक या कर्मचारी है। जब मैं व्यक्ति को वस्तु देता हूं कि वह व्यक्ति व्यक्ति है, लेकिन मैं जानना चाहूंगा कि वह व्युत्पन्न वर्ग 'प्रबंधक' या 'कर्मचारी' से है।

मुझे नहीं पता कि यह वही है जो आप चाहते हैं, और जिस तरह से आप इसे लागू करना चाहते हैं, लेकिन यह एक कोशिश है:

  & gt; & gt; ; & gt; वर्ग व्यक्ति (ऑब्जेक्ट): डीआरफ़ टाइप (स्वयं): रिटर्न स्व .__ क्लास __.__ नाम__ & gt; & gt; & gt; पी = व्यक्ति ()> & gt; & gt; & gt; P._type () 'व्यक्ति' & gt; & gt; & gt; कक्षा प्रबंधक (व्यक्ति): पास & gt; & gt; & gt; एम = प्रबंधक ()> gt; & gt; & gt; M._type () 'प्रबंधक' & gt; & gt; & gt;   

पेशेवरों: _type विधि की केवल एक परिभाषा।

Comments