РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
672 of 711 menu

Атрибут class_ класса InstanceState

Атрибут class_ класса InstanceState возвращает класс, к которому принадлежит отслеживаемый объект. Каждый объект ORM в SQLAlchemy связан с экземпляром InstanceState, и этот атрибут позволяет получить ссылку на сам класс модели, а не на его экземпляр. Это удобно, когда нужно определить тип объекта во время выполнения или получить доступ к атрибутам уровня класса.

Синтаксис

state.class_

Пример

Давайте создадим модель Article и объект этой модели, а затем получим класс через атрибут class_:

from sqlalchemy import create_engine, inspect from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] text: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article', text='some text') state = inspect(article) print(state.class_)

Результат выполнения кода:

"<class '__main__.Article'>"

Пример

Давайте сохраним объект в базе и убедимся, что атрибут class_ возвращает тот же класс:

from sqlalchemy import create_engine, inspect from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] status: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article', status='draft') session.add(article) session.commit() state = inspect(article) print(state.class_ is Article) print(state.class_.__tablename__)

Результат выполнения кода:

"True" "articles"

Смотрите также

  • класс InstanceState,
    который хранит состояние объекта ORM
  • атрибут object,
    который возвращает сам отслеживаемый объект
  • атрибут mapper,
    который возвращает маппер класса объекта
  • атрибут session,
    который возвращает сессию, связанную с объектом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить