Python如何动态创建对象并调用其方法?(调用.对象.创建.方法.动态...)
Python动态创建对象与方法调用详解
在Python开发中,常常需要根据字符串动态创建对象并调用其方法。本文将详细阐述如何利用importlib模块实现此功能,并提供代码示例。 需要注意的是,直接使用globals()方法无法直接解决动态实例化对象和方法调用的问题。
我们有两个Python文件:xx1.py定义类xxx和函数xxx2;xx2.py负责动态导入和调用。
xx1.py内容:
# -*- coding: utf-8 -*- __author__ = 'lpe234' class xxx(object): name = 'xxx' def __init__(self, name='xxx'): self.name = name def hello(self): print(f'hello {self.name}') def xxx2(name='xxx2'): print(f'hello {name}')
xx1.py定义了类xxx和函数xxx2,xxx类包含hello方法,两者均打印问候语。
xx2.py内容:
# -*- coding: utf-8 -*- __author__ = 'lpe234' import importlib class_name = 'xxx' class_func_name = 'hello' func_name = 'xxx2' xx1_module = importlib.import_module('xx1') # 动态创建对象并调用方法 obj = getattr(xx1_module, class_name)() obj.hello() # 另一种调用方法的方式 getattr(obj, class_func_name)() # 动态调用函数 getattr(xx1_module, func_name)()
xx2.py使用importlib.import_module('xx1')导入xx1模块。然后,通过getattr函数获取xxx类,创建实例,并调用hello方法。 代码展示了三种调用方式:直接调用实例方法,通过getattr获取方法再调用,以及直接调用函数。
运行xx2.py,输出结果:
hello xxx hello xxx hello xxx2
该示例成功演示了如何通过字符串动态创建xxx对象并调用其hello方法,以及如何动态调用xxx2函数。 这证明importlib模块和getattr函数可以有效解决Python中动态创建对象和调用方法的问题。
以上就是Python如何动态创建对象并调用其方法?的详细内容,更多请关注知识资源分享宝库其它相关文章!