我正在使用dataclasses从 Python 3.7 向后移植的Python模块。我偶然发现了这种行为,其中数据类子类不继承__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
Run Code Online (Sandbox Code Playgroud)
这是输出
In [21]: e = Employee(name='Dmitry', title='Systems Engineer')
In [22]: p = Person(name='Dmitry')
In [23]: repr(e)
Out[23]: "Employee(name='Dmitry', title='Systems Engineer')"
In [24]: p = Person(name='Dmitry')
In [25]: repr(p)
Out[25]: 'Person(Dmitry)'
In [26]: p.print_something()
Out[26]: 'Dmitry'
In [27]: e = Employee(name='Dmitry', title='Systems Engineer')
In [28]: repr(e)
Out[28]: "Employee(name='Dmitry', title='Systems Engineer')"
In …Run Code Online (Sandbox Code Playgroud) 我试图理解Python 库中typ和 的含义。我已阅读此处的
文档。
到目前为止,我已经了解使用安全加载器,该加载器省略了 YAML 中的 YAML 标记解析(它们可能导致任意代码执行)。我在文档中
没有找到有关往返解析器的任何解释。pure=Trueruamel.yamltyp='safe'typ='rt'
另外,我认为解释pure=True很混乱:
提供
pure=True强制使用纯 Python 实现(如果可能/可用,将使用更快的 C 库)
是否使用更快的 C 库pure=True?如果确实如此,为什么您需要首先指定此标志?