Python 通过字符串动态实例化对象和调用方法的问题?

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 xxx

hello xxx

hello xxx2

以上是 Python 通过字符串动态实例化对象和调用方法的问题? 的全部内容, 来源链接: utcz.com/p/938818.html

回到顶部