当methodname是函数参数时如何调用方法

时间:2017-05-03 18:29:23

标签: python python-3.x

def API(request, selector):
    if request.method == 'POST':
        API2 = callback(f, user, password)
        API2.selector()

在这种情况下,callback是一个在API2中启动的类。在类callback内,有一个名为register的函数。我想通过register()致电API2.selector()。因此API(request, register)应该会产生API2.register()

这样的事情可能吗?

我能想到的唯一原因是if / elif语句。

Finlay我希望它能在我向'... / API / register'发布POST时工作,它将返回API2.register()

1 个答案:

答案 0 :(得分:2)

你可以写:

getattr(API2, selector)()

使用内置的getattr函数。在这种情况下,您应该提供selector作为文字,所以:

getattr(API2, 'register')()

如果要返回结果,请使用return

def API(request, selector):
    if request.method == 'POST':
        API2 = callback(f, user, password)
        return getattr(API2, selector)()