通過類方法名調用類方法


我們都知道 ,python可以通過 eval和exec等執行簡單或者復雜的字符串類型的python語句.但是這種方式對於類方法會失效.

還有兩種其他方式可以

例如:

class A():
    def add(self, x, y):
        c = x + y
        print('{}+{}={}'.format(x, y, c))

    def bb(self):
        print('do other something!')

 當我們獲取 A的實例之后:

a = A()

1,第一種方式,通過反射,利用getattr獲取到方法並調用,可以通過定義一個統一的外部方法完成這個功能,如下:

def func_add(obj,funcname='',*args):
    # 通過反射進行取方法
    func = getattr(obj, funcname, None)
    if func:
        return func(*args)

if __name__ == '__main__':
    a = A()
    func_add(a, 'aa',2,3)

 

 第二種方式,operator中methodcaller方法進行調用

 
         
from operator import methodcaller

if __name__ == '__main__':
a = A()
methodcaller(
'aa',2,3)(a)

 


免責聲明!

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



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