2011-09-05 14 views
7

से विरासत में क्यों उत्तराधिकारी मेरे पिछले प्रश्नों में से एक में, एक उत्तरदाता मुझे सुझाव देता है कि जब आप जिस वर्ग को बनाना चाहते हैं, वह ऑब्जेक्ट से उत्तराधिकारी होना बेहतर है, जिसे अन्य वर्ग से प्राप्त करने की आवश्यकता नहीं है।ऑब्जेक्ट प्रकार

उदाहरण के लिए

, क्या की तरह मैं हमेशा:

class my_class: 
    "a class inherits from nothing" 
    def __init__(self): 
     pass 

के लिए वह या वह क्या सुझाव:

class suggested_class(object): 
    "a class inherits from object type" 
    def __init__(self): 
     pass 

मैं लाभ या दोनों दृष्टिकोण से नुकसान के साथ उलझन में हूँ।

प्रश्न 1:

तो अपने विचार क्या है, ऑब्जेक्ट प्रकार या कुछ भी नहीं से विरासत?

+2

देखें http://docs.python.org/release/2.2.3/whatsnew/sect-rellinks.html#SECTION000310000000000000000 – wim

+0

जैसा कि मार्सेलो का उल्लेख है, यदि आपके दो प्रश्न हैं, तो कृपया इस पोस्ट को एक प्रश्न पर सीमित करें और [ एक और सवाल पोस्ट करें] (http://stackoverflow.com/questions/ask) दूसरे के लिए। – SingleNegationElimination

+0

आप 'dir (my_class)' और 'dir (सुझाए गए_क्लास)' पर एक नज़र डाल सकते हैं। इसके अलावा, जैसा कि नीचे बताया गया है, दोनों पायथन 3 में समान होंगे। – steabert

उत्तर

5

कुछ भी नहीं से एक पुरानी शैली की कक्षा बनाता है, जिसमें नए शैली के वर्गों के लिए अलग-अलग व्यवहार होते हैं। मुझे अभी स्पष्टीकरण याद नहीं है (एक स्पष्टीकरण के लिए here देखें), लेकिन एक सामान्य नियम के रूप में, पुरानी शैली के वर्गों का पक्ष लेने का कोई कारण नहीं है, इसलिए आपको हमेशा ऑब्जेक्ट से प्राप्त होना चाहिए (यदि कुछ और नहीं)।

+4

नई शैली कक्षाएं रखने का कारण 1 है: पुरानी शैली कक्षाओं के सभी उदाहरणों के प्रकार 'classobj' थे, जो बहुत रोचक नहीं है, और 2: पुराने शैली वर्गों पर विधि संकल्प आदेश एकाधिक विरासत के लिए टूट गया था। इन मुद्दों में से एक या दोनों को ठीक करने से बहुत सारे मौजूदा कोड काम करना बंद कर देते थे, इसलिए करने के लिए सबसे सरल बात एक अलग तरह की कक्षा थी, इस प्रकार 'ऑब्जेक्ट'। – SingleNegationElimination

+1

@ टोकन इसके अलावा, पायथन 3 में, सभी वर्ग विशेष रूप से 'ऑब्जेक्ट 'से वंचित किए बिना नई शैली के रूप में वापस आ गए हैं। – Keith

+0

खैर, पुरानी स्टाइल कक्षाएं तोड़ दी गईं, और पी 3 ने जानबूझकर पिछड़े संगतता को तोड़ दिया, इसलिए कूदने के लिए यह एक अच्छा समय है। – SingleNegationElimination

संबंधित मुद्दे