从这样的类开始:
class FooClass(object):
@staticmethod
def static_method(x):
print x
通常,我会使用以下方式调用类的静态方法:
FooClass.static_method('bar')
是否可以仅使用类名和方法名来调用此静态方法?
class_name = 'FooClass'
method_name = 'static_method'
您不应该按照其他答案中的建议弄乱 locals() 。如果您的类名是字符串并且需要解析它,请使用某种注册表。一本字典就可以了。例如。
class FooClass(object):
@staticmethod
def static_method(x):
print x
registry = {'FooClass':FooClass}
(我假设您想要向此注册表添加更多类)
然后查找变得几乎微不足道:
getattr(registry['FooClass'], 'static_method')("bar")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)