python - Composite pattern for GTD app -
यह एक निरंतरता है
यहां मेरी कक्षाएं हैं।
#Project वर्ग वर्ग परियोजना: def __init __ (स्वयं, नाम, बच्चे = []): स्वयं। नाम = नाम self.children = children #add ऑब्जेक्ट def जोड़ (स्वयं, ऑब्जेक्ट): self.children.append (object) # सभी कार्यों डीईएफ़ कार्यों (स्वयं) की सूची प्राप्त करें: a = [] स्वयं में c के लिए। बच्चे: यदि isinstance (सी, एक्शन): a.append (c.name) वापस एक #get विशिष्ट कार्रवाई def कार्रवाई (स्वयं, नाम ): स्वयं में सी के लिए। बच्चों: अगर आईएसआईएनटीन (सी, एक्शन): यदि नाम == c.name: return c #get सभी परियोजनाओं डीईएफ़ प्रोजेक्ट्स (स्वयं): पी = [] के लिए स्वयं में c.children: यदि आईस्टेंन्स (सी, प्रोजेक्ट): पी। एपेंड (सी.नाम) रिटर्न पी # जीटी प्रोजेक्ट डेफ प्रोजेक्ट (स्वयं, नाम): सी में स्वयं के लिए। बच्चों: यदि ईस्टेंस (सी, प्रोजेक्ट): यदि नाम == c.name: return c #Action वर्ग वर्ग कार्रवाई: def __init __ (स्वयं, नाम): self.name = name self.done = False def mark_done (स्वयं): स्वयं। Done = true
यहाँ मेरे लिए परेशानी है I अगर मैं कई छोटी परियोजनाओं के साथ एक बड़ी परियोजना का निर्माण करता हूं, तो मुझे यह देखना है कि परियोजनाएं क्या हैं या मौजूदा परियोजना के लिए कार्य है, हालांकि मैं पेड़ में उन सभी को मिल रहा हूं। यहाँ परीक्षण कोड है जो मैं उपयोग कर रहा हूं (ध्यान दें कि मैंने जानबूझकर विभिन्न तरीकों से काम करने के लिए परीक्षण करने के लिए परियोजनाओं और कार्यों को जोड़ने के कई अलग-अलग तरीके चुने हैं)।
जीवन = परियोजना ("जीवन") Wife.add (एक्शन ("दिनांक")) wife.add (एक्शन ("प्रस्तावित") (एक्शन ("प्रस्ताव" )। पत्नी (एक्शन ("योजना शादी")) life.project ("विवाहित हो जाओ")। जोड़ें (पत्नी) life.add (परियोजना ("बच्चे हैं")) life.project ("बच्चे हैं")। जोड़ें (एक्शन ("बांग बाय पत्नी")) जीवन। प्रोजेक्ट ("बच्चे हैं")। जोड़ें (ऐक्शन ("गर्भवती पत्नी हो जाओ")) जीवन। प्रोजेक्ट ("बच्चे हैं")। जोड़ें (परियोजना ("गर्भावस्था के माध्यम से पीड़ित" परियोजना ("गर्भावस्था के माध्यम से पीड़ित")। जोड़ें (क्रिया ("पी")) life.project ("बच्चे हैं")। परियोजना ("गर्भावस्था के माध्यम से पीड़ित")। (प्लेगीयटर) जीवन.एड (प्रोजेक्ट ("रिटायर")) जीवन। प्रोजेक्ट ("रिटायर")। Add (playguitar)
जीवन में कुछ परियोजनाएं होनी चाहिए, कुछ के साथ उन परियोजनाओं के अंदर संरचना कुछ इस तरह की है (जहां इंडेंट्स प्रोजेक्ट हैं और - ये क्रियाएं हैं)
जीवन विवाहित हो जाओ विवाह खोजें पत्नी - तिथि - प्रस्ताव - योजना शादी बच्चों हैं - बैंग पत्नी - पत्नी की गर्भवती हो जाओ गर्भावस्था के माध्यम से पीड़ित - पीना - गिटार चलाएं रिटायर - गिटार बजाना
मुझे क्या पता चल रहा है कि जीवन। कृत्यों () पेड़ में हर क्रिया को वापस कर रहा है, जब कोई भी नहीं लौटना चाहिए Life.projects () हर परियोजना, यहां तक कि उप परियोजनाओं को वापस कर रहा है, जब मैं केवल 'विवाहित हो जाओ', 'बच्चों के लिए' और 'रिटायर' चाहता हूं। यह क्या है कि मैं गलत कर रहा हूं?
समस्या परियोजनाओं के अपने प्रारंभ के साथ है:
__init __ (आत्म, नाम, बच्चे = []):
आप केवल एक सूची प्राप्त करते हैं, जिसे आप सभी परियोजनाओं द्वारा साझा किया जाता बच्चे। एक स्पष्टीकरण के लिए देखें आप इसके बजाय डिफ़ॉल्ट को कोई भी नहीं बनाना चाहते हैं, और जब भी कोई मान नहीं होता है, तो एक खाली सूची प्रारंभ करें
__init __ (स्वयं, नाम, बच्चे = कोई नहीं): यदि बच्चे हैं कोई नहीं: बच्चों = []
Comments
Post a Comment