我定义了以下字符串,它们指定了python模块名称,python类名称和静态方法名称。
module_name = "com.processors"
class_name = "FileProcessor"
method_name = "process"
我想调用method_name变量指定的静态方法。
我如何在python 2.7 +
中实现这一目标答案 0 :(得分:5)
使用__import__
函数通过将模块名称作为字符串来导入模块。
使用getattr(object, name)
访问对象中的名称(模块/类或anything)
在这里你可以做到
module = __import__(module_name)
cls = getattr(module, claas_name)
method = getattr(cls, method_name)
output = method()
答案 1 :(得分:1)
您可以使用importlib。
试试importlib.import(module +"." + class +"."+ method)
请注意,如果您通过import module.class.method
导入它,那么这个连接的字符串应该看起来很像答案 2 :(得分:1)
试试这个:
# you get the module and you import
module = __import__(module_name)
# you get the class and you can use it to call methods you know for sure
# example class_obj.get_something()
class_obj = getattr(module, class_name)
# you get the method/filed of the class
# and you can invoke it with method()
method = getattr(class_obj, method_name)