相关疑难解决方法(0)

Python 3.7数据类中的类继承

我目前正在尝试使用Python 3.7中引入的新数据类结构.我目前坚持尝试做一些父类的继承.看起来参数的顺序是由我当前的方法拙劣的,这样子类中的bool参数在其他参数之前传递.这导致类型错误.

from dataclasses import dataclass

@dataclass
class Parent:
    name: str
    age: int
    ugly: bool = False

    def print_name(self):
        print(self.name)

    def print_age(self):
        print(self.age)

    def print_id(self):
        print(f'The Name is {self.name} and {self.name} is {self.age} year old')

@dataclass
class Child(Parent):
    school: str
    ugly: bool = True


jack = Parent('jack snr', 32, ugly=True)
jack_son = Child('jack jnr', 12, school = 'havard', ugly=True)

jack.print_id()
jack_son.print_id()
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到了这个TypeError:

TypeError: non-default argument 'school' follows default argument
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python python-3.x python-3.7 python-dataclasses

35
推荐指数
6
解决办法
7684
查看次数