Sunday 15 January 2012

python - Dynamically access instance method -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 5 जवाब

    इसलिए मेरे पास एक छोटी सी स्क्रिप्ट है अजगर में और मदद के लिए मैं प्रत्येक विधि डॉसस्ट्रिंग को प्रिंट करना चाहता हूं। उदाहरण के लिए

      ~ $ myscript.py सहायता अपडेट   

    स्क्रीन पर myClass.update .__ doc __ प्रिंट करेगा। मैं जिस कोड को चलाने की कोशिश कर रहा था वह यह है:

      import sys class myClass: def update (स्वयं): "" "अद्यतन विधि सहायता" "def help (self): method = sys Argv [2: 3] [0] यदि विधि == "अद्यतन": प्रिंट "सहायता:" + स्व.अपडेट .__ doc__ myClass = myClass () myClass.help ()   

    यह काम करता है, लेकिन मेरे तरीकों को संग्रह के रूप में बढ़ता है, यह गधे में दर्द हो सकता है ताकि सहायता का इरादा बन सके। क्या किसी भी तरह से कॉल करने के लिए self.method.__doc __ गतिशील रूप से है? धन्यवाद।

    इसे प्रयोग करने के बजाय:

      अगर विधि == आप अधिक लचीली समाधान का उपयोग कर सकते हैं:  
      help_string = getattr (स्वयं, विधि) .__ doc__     

    / Code>

    बस सुनिश्चित करें कि आप AttributeError s को पकड़ते हैं (दिए गए नाम के साथ कोई विधि नहीं होने पर इसे फेंक दिया जाएगा)।

No comments:

Post a Comment