मुझे लगता है कि एक ही कक्षाअजगर Recursion वस्तुओं और बच्चे वस्तुओं, प्रिंट बच्चे गहराई संख्या
class BoxItem:
def __init__(self, name, **kw):
self.name = name
self.boxItems = []
... #more attributes here
box1 = BoxItem('Normal Box')
box2 = BoxItem('Friendly Box')
box3 = BoxItem('Cool Box')
box4 = BoxItem('Big Box', [box1, box2]) #contains some children
example = BoxItem('Example Box', [box4,box3]) #contains another level of children
की वस्तुओं हमारे 'उदाहरण' बॉक्स वस्तु के साथ कार्य करना की एक सूची शामिल कर सकते हैं एक विशेषता के साथ एक सरल वर्ग है के माध्यम से, मैं हर संभव बॉक्स बच्चों यह हो सकता है की गहराई के माध्यम से छल, और वस्तुओं इतना प्रकार फ़ॉर्मेट प्रिंट आउट करना चाहते हैं:
1 Example Box
1.1 Big Box
1.1.1 Normal Box
1.1.2 Friendly Box
1.2 Cool Box
के बीच की जरूरत नहीं है Tabbing, बस स्पष्ट रूप से पेड़ प्रारूप को दिखाने के लिए चाहते हैं। मैं ऑब्जेक्ट्स को नीचे चलाकर अपने खिताब प्रिंट करने में सक्षम हूं, लेकिन मैं माता-पिता/बाल संबंध दिखाने वाले सामने वाले नंबरों को प्रिंट करने में सक्षम नहीं हूं। (1, 1.1, 1.2 ...)
आपकी मदद :)
संपादित करें के लिए अग्रिम धन्यवाद यहाँ मैं अब तक
def print_boxes(box_list):
node_count = 0
for box in box_list:
node_count += 1
print str(node_count)+' '+box.name #prints out the root box
recursive_search(box,node_count)
def recursive_search(box,node_count): #recursive automatically
level = 0
for child in box.boxItems:
level += 1
for x in range(len(child.boxItems)):
print x+1 #this prints out some proper numbers
print "level: "+str(level) #experiment with level
print child.name #prints out child box name
recursive_search(child,node_count) #runs the function again inside the function
को ट्रैक करें, मुझे स्थानीय रूप से एक सूची में बॉक्स को कनवर्ट करने के साथ अपनी पहली चाल पसंद है। इसके अलावा लपेटा हुआ कार्य दो अलग-अलग कार्यों के मुकाबले बहुत बेहतर पढ़ता है। तदनुसार मेरे कोड को संपादित करेगा और –
की रिपोर्ट करें अच्छी तरह से समझाया और पूरी तरह से काम किया। आपके कोड ने मुझे अच्छी तरह से शिक्षित किया, मैं बजाय कोडिंग उत्तर देने के बजाय शिक्षित होना चाहूंगा। धन्यवाद –
@ हैकिंग लाइफ: आम तौर पर मैं सिर्फ आपके कोड उदाहरण पर टिप्पणी करूंगा। शुरुआत में सभी लोग देखना चाहते हैं कि आपने क्या प्रयास किया है और आप कहां फंस गए हैं। आपने जो लिखा है उसे देखने के बाद, मैंने अभी फैसला किया है कि आपके पास पहले से ही सही अवधारणा है। खुशी है कि यह आपके लिए काम करता है! – jdi