gpt4 book ai didi

python - 从 Python 中的基类导入子类

转载 作者:太空狗 更新时间:2023-10-30 02:05:52 24 4
gpt4 key购买 nike

我有一个基类,它有一个创建子类实例的方法,该子类的名称与输入字符串相同。

这之前通过将子类和基类放在同一个文件中并执行类似 globals()[name] 的操作来实现。

但是,现在我已将子类拆分到其他文件中。它们每个在顶部都有一个 import base 语句,所以我不能简单地在我的基类中导入子类,否则会有一个循环导入链。

有解决办法吗?

base.py中:

from basefactory import BaseFactory
class Base:
def __init__(self, arg1, arg2):
...
def resolve(self, element):
className = typing.getClassName(element)
return BaseFactory.getInstance(className, element, self)

basefactory.py中:

from file1 import *
from file2 import *
...
class BaseFactory:
@staticmethod
def getInstance(name, arg1, arg2):
subclass = globals()[name]
return subclass(arg1, arg2)

file1.py中:

from base import Base

class subclass1(Base):
def foo(self):
return self.arg1

最佳答案

您可以将失败的 import 语句移动到创建子类对象的方法。

关于python - 从 Python 中的基类导入子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com