Я использовал pydantic для определения класса. Я создал подкласс, присущий родительскому классу. Когда я печатаю подкласс, почему он все еще показывает имя родительского класса? Что мне делать, чтобы распечатать класс Word?
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')]
Что мне здесь делать? Заранее спасибо!
Почему вы говорите, что Word class
и parent class
? Единственный класс u=это SubWord
Любой класс, а не только Pydantic, будет вести себя так же.
class Asd:
pass
Lol = Asd
>>> Asd
__main__.Asd
>>> Lol
__main__.Asd
В моем примере Lol
— это просто новая переменная, указывающая на Asd
, так что это не новый класс.
В вашем случае, если SubWord
и Word
идентичны, вам не нужно их разделять. Просто используйте Word
, если это слово, которое вы хотите использовать в своем коде.
Если вам нужно разделить их по какой-то веской причине, вы можете использовать наследование для эффективного копирования и переименования.
class Word(SubWord):
pass
Word
это ничто, только имя переменной, оно может быть чем угодно и не имеет значения, тогда как SubWord имеет значение, так как это имя класса