Python:如何使用 Importlib 创建类对象[重复]

2024-03-27

我知道类似的问题已被多次提出/回答。但请继续阅读..

我正在尝试从字符串值创建一个类,如“将字符串转换为 Python 类对象 https://stackoverflow.com/questions/1176136/convert-string-to-python-class-object“在 Python 3.6 中。

utils.py

class Foo(object):
    def __init__(self):
        print("In the constructor of Foo")

    def What(self):
        print("so what ... ")

class FooParam(object):
    def __init__(self, v):
        self.value = v
        print("In the constructor of FooParam")

    def What(self):
        print("Value=" % self.value)
        print("So what now ...")

欢迎.py

def TEST1():
    m = importlib.import_module("utils")
    c = getattr(m, "Foo")
    c.What()  

if __name__ == '__main__': 
    TEST1()

Error

TypeError: What() missing 1 required positional argument: 'self'

那么我做错了什么?

另外,如何创建“FooParam”对象并将值传递给构造函数。


导入模块后,只需访问您存储的导入模块的变量:

m = importlib.import_module("utils")
foo = m.Foo()
foo.What()

import_module执行与以下相同的步骤import.

This c = getattr(m, "Foo")代码行是等效的f = Foo所以这意味着您没有创建实例,而是获得对该类的引用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何使用 Importlib 创建类对象[重复] 的相关文章

随机推荐