我有一个项目,其中包含一些模块,每个模块都包含一个类来完成各自的工作。然后我为用户提供了一个 API 类。 API 类实例化这些类,并且应该转发/重定向到那些正在做实际处理的人。我有以下问题:
如何在不重写在我看来是多余的代码的情况下进行转发?例如,
Foo
是 API 类,Bar
是模块类,那么现在我写的是这样的:class Foo: def __init__(self, bar: Bar): self.bar = bar def name(self): return self.bar.name()
我在
Foo
中明确写了name
方法,它只返回Bar
的name()
。这不是多余的吗?是否有一种“自动”方式来转接电话?在
bar
类中,我会编写一些文档字符串。有没有办法将这些文档字符串“移植”到 API 类Foo
?在Foo
中再次编写它们将是多余的并且难以维护。
最佳答案
您可以将bar.name
赋值给self.name
。具有类的 __doc__
属性的文档字符串也是如此:
class Foo:
def __init__(self, bar: Bar):
self.bar = bar
self.name = bar.name
self.__class__.__doc__ = bar.__class__.__doc__
关于python - 在没有冗余代码/文档字符串的情况下转发/重定向 python 类中的方法/属性的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69444593/