zoukankan      html  css  js  c++  java
  • 通过类方法名调用类方法

    我们都知道 ,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)
  • 相关阅读:
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    MyDAL
    ThinkPad 安装 Ubuntu 18.10 系统 -- 高分屏各项配置与Nvdia独显驱动
  • 原文地址:https://www.cnblogs.com/lxfdf/p/13724082.html
Copyright © 2011-2022 走看看