Когда я определяю класс данных следующим образом: p>
Код: Выделить всё
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
Код: Выделить всё
str
В частности, у меня есть вопрос:
Как декоратор класса данных использует подсказки типов для создания этих методов?
Я скопировал и вставил тот же код из исходного файла классов данных в свой рабочий каталог с именем custom_dataclass (для тестирования). целей), но мой линтер не распознал атрибуты __init__.

На рисунке 1 вы можете видеть, что когда я пытаюсь создать экземпляр класса Person, я правильно визуализирую все атрибуты, упомянутые в классе Person. Этот класс использует оригинальный декоратор @dataclass. Однако когда я пробую то же самое с PersonCustom, используя декоратор @custom_dataclass, атрибуты вообще не появляются, как показано на рисунке 2.

Если у кого-то есть ответы или идеи, я хотел бы их услышать. Заранее спасибо за вашу помощь!
Я также пытался увидеть метод declarative_base из sqlalchemy, например
Код: Выделить всё
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
User()

Подробнее здесь: https://stackoverflow.com/questions/785 ... ses-module