2012-11-22 11 views
9

मैं किसी विशेष बेस क्लास के उपयोग को प्रदर्शित करने के लिए एक डॉक्टरेट टिप्पणी ब्लॉक का उपयोग करना चाहता हूं, लेकिन या तो यह कामकाज के साथ नहीं किया जा सकता है या मैं कुछ गलत कर रहा हूं। यहां मेरा सरल डेमो कोड है।पायथन: मैं एक कक्षा में कक्षा को कैसे परिभाषित कर सकता हूं?

class MyClass(object): 
    ''' 
    >>> m = MyClass() 
    >>> print m.x 
    1 
    >>> class A(MyClass): 
    >>> def __init__(self): 
    >>> super(A,self).__init__() 
    >>> 
    >>> a = A() 
    >>> print a.x 
    1 
    ''' 


    def __init__(self): 
     self.x = 1 


if __name__ == "__main__": 
    import doctest 
    doctest.testmod()  

कोड नहीं चलाया जाता है। यहां जारी की गई पहली त्रुटि यहां दी गई है:

Failed example: 
class A(MyClass): 
Exception raised: 
Traceback (most recent call last): 
    File "C:\Python27\lib\doctest.py", line 1254, in __run 
    compileflags, 1) in test.globs 
    File "<doctest __main__.MyClass[2]>", line 1 
    class A(MyClass): 
        ^
SyntaxError: unexpected EOF while parsing 
+0

@avasal: मेरी गलती; वोहेल पोस्ट को गलत रूप से स्वरूपित किया गया था और मैंने उस वर्ग को शेष वर्ग के साथ दोबारा प्रस्तुत किया था। –

उत्तर

14

दुभाषिया में इसे आज़माएं; यह निरंतरता रेखाओं को दिखाने के लिए ... का उपयोग करता है। >>>, केवल एक नई बयान या अभिव्यक्ति के लिए है, जबकि अधूरा में एक class जब तक आप एक खाली ... निरंतरता लाइन लिया है:

>>> class A(MyClass): 
    ...  def __init__(self): 
    ...   super(A, self).__init__() 
    ... 
+0

बहुत बहुत धन्यवाद, अब एक आकर्षण की तरह काम करता है! एक और पक्ष की समस्या जिसे मैंने भाग लिया था वह था कि "कुछ स्ट्रिंग \ n" जैसी नई लाइनें परेशानी का कारण बनती हैं। मैंने उन्हें + os.sep के साथ बदल दिया। बस अगर एक ही प्रश्न के साथ कोई और इसे पढ़ता है। – Sven

+1

@ सेवन: 'os.sep'? इसके बदले * '' '' '' '' '' \\ n' क्यों नहीं? उदाहरण के लिए, यूनिक्स प्लेटफ़ॉर्म पर 'os.sep' '/' है। –

+1

मेरा बुरा। तुम सही हो, और मेरा मतलब ओ। लिनेसप। – Sven

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