gpt4 book ai didi

python:围绕第三方类编写包装器

转载 作者:行者123 更新时间:2023-11-28 22:05:46 25 4
gpt4 key购买 nike

我需要第三方模块 m 的 X 类的一些功能。我可以直接使用 m.X,但将来我可能需要用另一个类 n.Y 替换 m.X(例如,如果我发现更好的实现)。

我想避免在这种情况下更改其余代码。

现在,我希望 m.X 的完整界面(包括初始化)保持不变。我为 m.X 编写了一个包装器 W,如下所示:

class W(m.X):
def __init__(self, *args):
super().__init__(*args)

以后如果有需要,我打算把上面的改写成:

class W(n.Y):
def __init__(self, *args):
super().__init__(*args)
# override instance methods of n.Y that don't share the semantics with m.X
# for example, in case f1 is hard to replicate in n.Y:
# def f1(self, *args):
# print("this method is no longer available")
# raise MyDeprecatedMethod()
# for example, in case f2 needs to be recalculated
# def f2(self, *args):
# do the calculations required to keep W.f2 unchanged

我当前的 m.X 包装器是否可以接受?它或计划中的 n.Y 包装有问题吗?

最佳答案

你可以简单地使用

class W(m.X):
pass

默认继承m.X.__init__()

关于python:围绕第三方类编写包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731030/

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