Атрибут class_ класса Mapper
Атрибут class_ класса Mapper
содержит ссылку на класс Python, который
отображается данным маппером. Это тот самый
класс, который был передан при регистрации
в реестре или при связывании с таблицей.
Атрибут доступен только для чтения и
позволяет получить исходный класс из объекта
маппера, например, при работе с инспекцией.
Синтаксис
mapper.class_
Пример
Давайте создадим модель и получим ее маппер,
а затем выведем связанный класс через атрибут
class_:
from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
mapper = inspect(Article)
print(mapper.class_)
Результат выполнения кода:
<class '__main__.Article'>
Пример
Давайте сравним класс, полученный из маппера, с исходным классом модели:
from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
mapper = inspect(Article)
print(mapper.class_ is Article)
print(mapper.class_.__name__)
Результат выполнения кода:
True
"Article"
Смотрите также
-
класс
Mapper,
который представляет маппер класса -
атрибут
columns,
который возвращает коллекцию колонок маппера -
атрибут
attrs,
который содержит атрибуты маппера -
метод
get_property,
который возвращает свойство маппера по имени