我有一个class A
在外国图书馆。
class A:
def __init__(self, a: int):
self.a = a
我想扩展class B
a A
:
import attr
@attr.s
class B(A):
b: int = attr.ib()
该代码似乎有效:
import attr
class A:
def __init__(self, a: int):
self.a = a
attr.s(these={
"a": attr.ib(type=str)
}, init=True)(A)
@attr.s(kw_only=True)
class B(A):
b: int = attr.ib()
if __name__ == "__main__":
a = A(1)
b = B(a=1, b=2)
print(a) # output: A(a=1)
print(b) # output: B(a=1, b=2)
但 mypy/pyright 不开心。
> mypy file.py
error: Unexpected keyword argument "a" for "B"