मैंने अभी "isinstance() considered harmful" पढ़ा है, और यह उचित लगता है। संक्षेप में, यह इस फ़ंक्शन के उपयोग से बचने के लिए तर्क देता है।बिना इंस्टेंसेंस के सूचियों की सूची में रिकर्सन()
ठीक है, अभी मैं एक कार्यक्रम लिख रहा हूं जो पेड़ के रूप में संरचित इनपुट लेता है, और पेड़ की संरचना की जानकारी की आवश्यकता होती है। एक जीयूआई लागू करने के समय के बिना, मैं इसे उपयोगकर्ता को कॉन्फ़िगरेशन फ़ाइल में लिखने के लिए लगाता हूं (मुझे पता है कि यह एक खराब इंटरफ़ेस है, लेकिन शेड्यूल वास्तव में तंग है)। मेरे उपयोगकर्ता बहुत तकनीकी हैं, लेकिन जरूरी नहीं कि पाइथन जानें। मैंने चुना है कि फ़ाइल में पेड़ के पत्ते नोड्स के साथ अंतिम तत्व इनपुट पेड़ का प्रतिनिधित्व करने वाली सूचियों (सूचियों की सूचियों आदि की सूची) शामिल होंगे। मुझे लगता है कि यह उपयोगकर्ताओं पर शब्दकोशों के synthax को लागू करने से काफी बेहतर है। के प्रकाश में
def parseTree(input):
if isinstance (input, list):
for item in input:
parseTree(item)
else:
treatLeafNode(item)
:
मैं निम्नलिखित के रूप में रिकर्सिवली सूचियों पार्स करने के लिए (वृक्ष की संरचना के उपयोग ommiting, चलो आसान बनाने में करते हैं और treatLeafNode (कहते हैं) प्रत्येक पत्ती नोड पर बुलाया जाना चाहिए) की योजना लेख, मैं सोच रहा हूं कि Isinstance() का उपयोग किए बिना उस पर पुनर्विचार करने का एक आसान तरीका है ...
क्या कोई भी किसी को जानता है?
++, ध्वनि सलाह –