2011-06-19 14 views
11

मैंने बहुत कुछ खोजा है, लेकिन मुझे जो मिला वह मुख्य रूप से पायथन में पुनरावर्ती प्रोग्रामिंग का उदाहरण है। तो यहां सवाल है:पायथन पारस्परिक रूप से निर्भर वर्ग (परिपत्र निर्भरता)

मैं इसे कैसे प्राप्त कर सकता हूं?

class A: 
    b = B() 

class B: 
    a = A() 
+0

यह रिकर्सन नहीं है, यह एक परिपत्र निर्भरता है। – geoffspear

उत्तर

7

सब कुछ पाइथन में गतिशील है - यहां तक ​​कि कक्षा घोषणाएं भी।

class A: 
    pass 

class B: 
    a = A() 

A.b = B() 

एनबी:: वहाँ आप प्रारंभिक घोषणा के बाद एक वर्ग की सामग्री को संशोधित को रोकने के लिए कुछ भी नहीं है कि आप उस अजगर से परिचित नहीं हैं, तो pass कीवर्ड बस आप 'यहाँ कुछ भी नहीं' कहने के लिए अनुमति देता है - यह नहीं है महत्वपूर्ण है जब तक कक्षा ए उतना खाली नहीं है जितना कि इस उदाहरण में है!

+0

अच्छा, लेकिन मुझे लगता है कि फ़ील्ड '__metaclass__' के लिए काम नहीं करेगा ... – dhill

+1

यदि आप किसी अन्य फ़ाइल में foo आयात ए' से भी काम नहीं करेंगे तो यह भी काम नहीं करेगा –

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