参考:
有个方法叫做:call_user_function()
通过这个方法,PHP可以传入函数名字(字符串)就可以调用,那么Python呢?
当然,Python实现这个方法也很容易:
如果是调用类方法,可以这么做,通过getattr函数:
class MyClass(object):
def install(self):
print "In install"
method_name = 'install' # set by the command line options
my_cls = MyClass()
method = None
try:
method = getattr(my_cls, method_name)
except AttributeError:
raise NotImplementedError("Class `{}` does not implement `{}`".format(my_cls.__class__.__name__, method_name))
method()
如果是普通方法调用,可以这么做:
def install():
print "In install"
method_name = 'install' # set by the command line options
possibles = globals().copy()
possibles.update(locals())
method = possibles.get(method_name)
if not method:
raise NotImplementedError("Method %s not implemented" % method_name)
method()
普通函数调用也可以这么做,通过dict来进行键值对应:
def install():
print "In install"
methods = {'install': install}
method_name = 'install' # set by the command line options
if method_name in methods:
methods[method_name]() # + argument list of course
else:
raise Exception("Method %s not implemented" % method_name)
文章的脚注信息由WordPress的wp-posturl插件自动生成
|2|left