gpt4 book ai didi

python - 在Python中动态设置继承

转载 作者:行者123 更新时间:2023-12-01 06:16:31 26 4
gpt4 key购买 nike

我有类 A ,它应该继承类 B ,在编写 A 时,类 B 的名称尚不清楚。是否可以声明 A 不继承任何内容,并在 A 实例化期间添加 B 作为基类?示例:

第一个文件

class B:
def __init__(self):
self.__name = "Class B"

def name(self):
return self.__name

第二个文件

class A:
def __init__(self):
self.__name = "Class A"

# At some point here, the appropriate module name and location is discovered
import sys
sys.path.append(CustomModulePath)
B = __import__(CustomModuleName)

magic(A, B) # TODO What should magic() do?

a = A()
print a.name() # This will now print "Class A", since name() is defined in B.

最佳答案

是的,您可以使用元类来完成此任务。这不是最容易理解的主题,但它可以完成任务。有一个Stack Overflow关于它们的问题看起来有一些很好的信息,我还发现了一个 IBM article这也可能有帮助。在 Python 官方文档中的某个地方,有一个关于它们的部分,但我不记得具体在哪里。

关于python - 在Python中动态设置继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094265/

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