python-3.x 如何正确使用kw_only?

mzsu5hc0  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(66)

我希望基类变量有默认值,而派生类变量没有默认值。我在以下网站上读到了'kw_only':
https://medium.com/@aniscampos/python-dataclass-inheritance-finally-686eaf60fbb5
并在我的代码上尝试了一下:

from dataclasses import dataclass, field

@dataclass(kw_only=True)
class Base:
    c:int = field(default=8, compare=False)
    def printBVars(self):
        print("Base:", self.c)

@dataclass(kw_only=True)
class Derive(Base):
    cc:int = field()
    def printDVars(self):
        super().printBVars()
        print("Derive:", self.cc)

a = Derive()
a.printDVars()

字符串
但是Python给出了这个错误:
第一个月
我做错了什么?我用的是python 3.9,我从google那里读到了一些解决方案的建议,试了一些,但没有帮助。比如运行:pip install attrs --upgrade

gcmastyq

gcmastyq1#

Python版本更新到3.11
通过下面的代码在图片中,你不能使用kw_only。
Image Link

相关问题