Python 通过字符串动态实例化对象和调用方法的问题?
通过 importlib.import_module
能动态导入模块,但是尝试了一些如 globals
方法也没能实现:动态实例化对象,动态调用方法,场景是:
class = "类A"func = "方法B"
# 如何通过字符串动态实例化对象然后动态调用方法呢?
回答:
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}')
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')
getattr(xx1_module, class_name)().hello()
getattr(getattr(xx1_module, class_name)(), class_func_name)()
getattr(xx1_module, func_name)()
输出
hello xxxhello xxx
hello xxx2
以上是 Python 通过字符串动态实例化对象和调用方法的问题? 的全部内容, 来源链接: utcz.com/p/938818.html