python 使用字符串名調用類以及調用類方法名


在python中,有時調用者僅知道類名和類方法,不負責實際的函數調用,而是將要調用的類名和類方法告訴一個中間函數,由中間函數負責實際調用函數。中間函數需以被告知的字符串調用類和類方法。                                                                               在萬物皆對象,我們需要將傳進來的字符串轉化為類對象,這里我們可以使用eval實現。而以字符串形式調用類方法,可以使用內置方法getattr實現,以下是詳細例子。

class SayHello():
    def say(self):
        print 'hello'

if __name__ == '__main__':
    # normal call class method
    i_s_h = SayHello()
    i_s_h.say()
    # use string call class method
    c_str = eval('SayHello')()
    print c_str
    c_str.say()
    # direct use class method
    getattr(c_str,'say')()

以上輸出:

hello
<__main__.SayHello instance at 0x0000000002242848>
hello
hello
[Finished in 0.3s]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM