通过名称调用Python方法

发布于 2021-01-29 14:10:32

如果我在字符串中有一个对象和一个方法名称,该如何调用该方法?

class Foo:
    def bar1(self):
        print 1
    def bar2(self):
        print 2

def callMethod(o, name):
    ???

f = Foo()
callMethod(f, "bar1")
关注者
0
被浏览
241
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用内置getattr()功能:

    class Foo:
        def bar1(self):
            print(1)
        def bar2(self):
            print(2)
    
    def call_method(o, name):
        return getattr(o, name)()
    
    
    f = Foo()
    call_method(f, "bar1")  # prints 1
    

    您还可以setattr()用于通过名称设置类属性。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看