如何使用 Python 动态实例化对象并调用其方法?

如何使用 python 动态实例化对象并调用其方法?

python 动态实例化对象与调用方法

python 中,可以使用动态导入模块的方式来达到动态实例化对象和调用方法的目的。为此,可以通过 importlib.import_module 函数动态导入模块。

动态实例化对象

为了动态实例化对象,需要使用 getattr 函数。该函数可以获取对象或模块的属性,包括动态创建的对象。例如,如果有一个名为 class_name 的字符串表示要实例化的类名,并且该类存储在 xx1 模块中,则可以执行以下步骤:

xx1_module = importlib.import_module('xx1')

# 动态创建对象
object = getattr(xx1_module, class_name)()

动态调用方法

要动态调用方法,可以使用相同的 getattr 函数。例如,如果有一个名为 class_func_name 的字符串表示要调用的方法名,则可以执行以下步骤:

getattr(object, class_func_name)()

代码示例

下面是一个完整的代码示例,展示了如何动态实例化对象和调用方法:

# xx1.py
class xxx:
    def hello(self):
        print('hello')

# xx2.py
import importlib

class_name = 'xxx'
class_func_name = 'hello'

xx1_module = importlib.import_module('xx1')

# 动态创建对象
object = getattr(xx1_module, class_name)()

# 动态调用方法
getattr(object, class_func_name)()

输出:

hello

以上就是如何使用 Python 动态实例化对象并调用其方法?的详细内容,更多请关注硕下网其它相关文章!