如何在 pydantic 中打印 sub-class 名称?
How to print sub-class name in pydantic?
我用pydantic定义了一个class。我创建了一个从父 class 继承的子 class。当我打印 sub-class 时,为什么它仍然显示父 class 名称?我应该怎么做才能打印 Word class?
class SubWord(BaseModel):
word: str
label: str
Word = SubWord
word = [Word(word="apple",label="fruit")]
print(f'word: {word}')
这是结果:
word: [SubWord(word='apple', label='fruit')]
但我期待:
word: [Word(word='apple', label='fruit')]
我应该在这里做什么?提前致谢!
任何 class 而不仅仅是 Pydantic 的行为方式相同
class Asd:
pass
Lol = Asd
>>> Asd
__main__.Asd
>>> Lol
__main__.Asd
在我的示例中 Lol
只是一个指向 Asd
的新变量,因此它不是新的 class.
在您的情况下,如果 SubWord
和 Word
相同,则无需将它们分开。如果您想在代码中使用 Word
,只需使用 Word
。
如果你出于某种原因需要将它们分开,那么你可以使用继承来有效地复制和重命名
class Word(SubWord):
pass
我用pydantic定义了一个class。我创建了一个从父 class 继承的子 class。当我打印 sub-class 时,为什么它仍然显示父 class 名称?我应该怎么做才能打印 Word class?
class SubWord(BaseModel):
word: str
label: str
Word = SubWord
word = [Word(word="apple",label="fruit")]
print(f'word: {word}')
这是结果:
word: [SubWord(word='apple', label='fruit')]
但我期待:
word: [Word(word='apple', label='fruit')]
我应该在这里做什么?提前致谢!
任何 class 而不仅仅是 Pydantic 的行为方式相同
class Asd:
pass
Lol = Asd
>>> Asd
__main__.Asd
>>> Lol
__main__.Asd
在我的示例中 Lol
只是一个指向 Asd
的新变量,因此它不是新的 class.
在您的情况下,如果 SubWord
和 Word
相同,则无需将它们分开。如果您想在代码中使用 Word
,只需使用 Word
。
如果你出于某种原因需要将它们分开,那么你可以使用继承来有效地复制和重命名
class Word(SubWord):
pass