我使用的是python3.7后端口的Pythondataclasses
模块。
我偶然发现了一个dataclass子类没有继承__repr__
的行为:
from dataclasses import dataclass
@dataclass
class Person:
name: str
def __repr__(self):
return f'{self.__class__.__qualname__}({self.name})'
def print_something(self):
return self.name
@dataclass
class Employee(Person):
title: str
这是输出
^{pr2}$1)为什么会发生这种情况?
2) 对于这种行为是否有解决方法(除了在子类中重新定义__repr__
)?在
发生这种情况是因为
dataclass
自动添加了一个__repr__
方法,而这个方法恰好是基类中的方法,所以您没有注意到。为repr=False
传递dataclass
不添加repr:相关问题 更多 >
编程相关推荐