我正在将attrs python 库用于继承自非 attrs 基类的子类。我想通过 kwargs 向孩子公开所有父参数,但无法弄清楚如何使用 attrs 进行处理。
基本示例:
@attr.s
class Child(Parent):
x = attr.ib()
# I want to pass through the b & c params to Parent
b = attr.ib()
c = attr.ib()
y = attr.ib(default=2)
# more params
def __attrs_post_init__(self):
super(Child,self).__init__(a=2*self.x, b=self.b, c=self.c)
class Parent(object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
# more params
我对父类没有很大的自由裁量权,但在将其设置为 attrs 时也看到了围绕默认值的挑战。有没有办法避免在 Child 上指定所有 Parent 参数?如果我不使用 attrs 我可以做一些类似的事情**kwargs_Parent
并初始化super(Child,self).__init__(a=2*x, **kwargs)