मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं object()
अंतर्निहित फ़ंक्शन का उपयोग कैसे करूंगा। इसमें कोई तर्क नहीं होता है, और उस प्रकार की "फीचरलेस ऑब्जेक्ट" देता है जो सभी पायथन कक्षाओं के लिए आम है, और इसमें सभी विधियां हैं जो सभी पायथन कक्षाओं के लिए आम हैं।ऑब्जेक्ट() अंतर्निहित उपयोगी कब है?
उत्तर
जैक Skellington के शब्दों में, यहां तक कि अगर आप इसके साथ कार्यक्रम की जरूरत नहीं है, object
एक उद्देश्य में कार्य करता है: यह सामान्य वर्ग से दूर अन्य सभी वस्तुओं प्राप्त कर रहे हैं है। यह mro
(method resolution order) विधि द्वारा सूचीबद्ध अंतिम श्रेणी है। हमें इस अवधारणा के लिए एक नाम और वस्तु की आवश्यकता है, और object
इस उद्देश्य को पूरा करता है।
object
के लिए एक और उपयोग sentinels बनाने के लिए है।
sentinel = object()
इस बार बहु प्रोग्रामिंग में प्रयोग किया जाता है - signal a termination event के लिए - कतारों के माध्यम से पारित कर दिया। हम None
या किसी अन्य मूल्य को नहीं भेजना चाहते हैं क्योंकि कतार हैंडलर को उन मानों की व्याख्या करने की आवश्यकता हो सकती है, जिन्हें संसाधित करने के तर्क हैं। हमें कुछ अद्वितीय मूल्य की आवश्यकता है कि कार्यक्रम का कोई अन्य हिस्सा उत्पन्न नहीं हो सकता है।
इस तरह एक सेंटीनेल बनाना इस तरह की एक अनूठी वस्तु प्रदान करता है जो निश्चित रूप से एक सामान्य कतार मान नहीं है, और इस प्रकार किसी विशेष घटना के लिए सिग्नल के रूप में परीक्षण और उपयोग किया जा सकता है। अन्य संभावनाएं हैं, जैसे क्लास, या क्लास इंस्टेंस या फ़ंक्शन बनाना, लेकिन ये सभी विकल्प बड़े, अधिक संसाधन भारी हैं, और object()
के रूप में पिथी नहीं हैं।
यदि आप डॉट ओवरराइड कर रहे हैं तो यह सबसे उपयोगी है (विशेष रूप से __setattr__
), यह आपको रिकर्सन तोड़ने की अनुमति देता है। उदाहरण के लिए:
class SomeClass(object):
def __setattr__(self, name, value):
if name not in ('attr1', 'attr2', 'attr3', 'attr4'):
object.__setattr__(self, name, value)
else:
do_something_else()
स्टैक एक्सचेंज में आपका स्वागत है! यहां आपकी [कार्निवल इवेंट गाइड] है (http://stackexchange.com/sites) – Aerovistae
मैं आमतौर पर 'सुपर()' का उपयोग करने के पक्ष में सीधे 'ऑब्जेक्ट' पर कॉलिंग विधियों से बचने के लिए कहूंगा। एक कारण यह है कि यह सहकारी एकाधिक विरासत की अनुमति देता है। 'ऑब्जेक्ट 'कक्षा अभी भी निश्चित रूप से शामिल होगी, क्योंकि यह अंतिम आधार वर्ग है कि' सुपर() 'कॉल अंततः पहुंच जाएगी, लेकिन आपको इसे स्पष्ट रूप से नाम देने की आवश्यकता नहीं है। – Blckknght
@Blckknght मैं आम तौर पर उस पर आपसे सहमत हूं, हालांकि, तोड़ने के मामले में, मैं आमतौर पर एक सुपर-क्लास के कारण रिकर्सन तोड़ने की कोशिश कर रहा हूं (ढांचे के साथ काम नहीं कर रहा है?)। यह एक प्रयोग का मामला है जहां मैं (सामान्य रूप से) स्पष्ट रूप से वस्तु का उपयोग करता हूं। – Tritium21
- 1. फ़ाइल.जॉइन उपयोगी कब है?
- 2. @ उपयोगी कब होता है?
- 3. __proto__ कब उपयोगी है?
- 4. फ्लाईवेट बनाम ऑब्जेक्ट पूल पैटर्न: प्रत्येक उपयोगी कब होता है?
- 5. ब्लूम फ़िल्टर कब उपयोगी है?
- 6. एक ConcurrentSkipListSet कब उपयोगी है?
- 7. एंड्रॉइड - ड्राइंग कैश - यह कब उपयोगी है?
- 8. डबल जबरन उपयोगी कब होता है?
- 9. repr उपयोगी का आउटपुट कब होता है?
- 10. विनम्र वस्तु पैटर्न क्या है और यह कब उपयोगी है?
- 11. जावास्क्रिप्ट ऑब्जेक्ट विधि चेनिंग: उपयोगी?
- 12. 'adb remount' क्या करता है? यह कब उपयोगी है?
- 13. रूबी फ्लिप-फ्लॉप कब उपयोगी होगा?
- 14. डेमॉन धागे कब उपयोगी होते हैं?
- 15. श्वार्टज़ियन परिवर्तन कब उपयोगी होते हैं?
- 16. एसक्लाइट के मेनिफेस्ट टाइपिंग का उपयोग कब उपयोगी होता है?
- 17. एसक्यूएल ओवर() खंड - कब और क्यों उपयोगी है?
- 18. "पहले से ही एक दोस्त" चेतावनी उपयोगी कब है?
- 19. quotRem और divMod के बीच अंतर कब उपयोगी है?
- 20. जावा: एक स्थैतिक प्रारंभिक ब्लॉक कब उपयोगी होता है?
- 21. सूची ऑब्जेक्ट की अंतर्निहित गुण
- 22. tr1 :: context_wrapper कैसे उपयोगी है?
- 23. ऑब्जेक्ट ओरिएंटेड कब सही समाधान नहीं है?
- 24. ऑब्जेक्ट "स्कोप से बाहर" कब होता है?
- 25. ऑब्जेक्ट पूलिंग के लिए कब जाना है?
- 26. कैलेंडर। इससे पहले (ऑब्जेक्ट कब), ऑब्जेक्ट क्यों?
- 27. पर्ल के स्केलर अल्पविराम ऑपरेटर कब उपयोगी होते हैं?
- 28. EF4 कास्ट डायनामिक प्रॉक्सीज अंतर्निहित ऑब्जेक्ट
- 29. Response.IsClientConnected कितना उपयोगी है?
- 30. match.call क्यों उपयोगी है?
यह किसी फ़ंक्शन के रूप में उपयोग करने का इरादा नहीं है; इसका उद्देश्य आधार वर्ग का उपयोग करना है। – refi64
पायथन 3 में? क्यूं कर? मैं उससे क्या हासिल करूंगा? कक्षाएं स्वचालित रूप से उन तरीकों का वारिस करती हैं, नहीं? – Aerovistae
मुझे लगता है कि आपके द्वारा दिए गए दस्तावेज़ लिंक में उल्लसित कैसे है, इसमें कुछ हाइपरलिंक्ड टेक्स्ट है जो पुनरावर्ती रूप से स्वयं को इंगित करता है। – Shashank