【发布时间】:2021-12-04 04:41:50
【问题描述】:
我在国外图书馆有一个class A。
class A:
def __init__(self, a: int):
self.a = a
我想用A 扩展class B,例如:
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"
【问题讨论】:
标签: python type-hinting mypy python-typing python-attrs