
python 动态实例化对象和调用方法的问题
在 python 中,我们通常可以通过导入模块并使用其中的类和函数来实例化对象并调用方法。但是,当我们希望动态地执行这些操作时,就需要一些技巧。
如何动态实例化对象和调用方法?
我们可以使用 importlib.import_module 动态导入模块,然后使用 getattr 函数来获取其中的类和函数。
立即学习“Python免费学习笔记(深入)”;
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
以下代码演示了如何实现:
# xx1.py
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}')
# xx2.py
import importlib
class_name = 'xxx'
class_func_name = 'hello'
func_name = 'xxx2'
xx1_module = importlib.import_module('xx1')
getattr(xx1_module, class_name)().hello()
getattr(getattr(xx1_module, class_name)(), class_func_name)()
getattr(xx1_module, func_name)()运行此代码将输出:
hello xxx hello xxx hello xxx2
其中,getattr(xx1_module, class_name) 获取类 xxx,getattr(xx1_module, class_name)() 实例化此类,getattr(getattr(xx1_module, class_name)(), class_func_name)() 调用其方法 hello,getattr(xx1_module, func_name)() 调用函数 xxx2。









