Есть ли какие-либо предостережения, связанные с использованием объекта .__ class__ в python? - PullRequest
1 голос
/ 30 января 2020

Есть ли какие-либо предостережения, связанные с использованием object.__class__? например, в Django, как только я сделал это:

model_object.__class__.objects.all()

Я хотел бы знать, если это совершенно нормально.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Явное лучше, чем неявное. Просто импортируйте класс модели ::

from .models import ModelClass

ModelClass.objects.all()
0 голосов
/ 30 января 2020

Не обязательно. <class instance>.__class__ - это разумный способ получить атрибуты класса или методы экземпляра. Обычно есть какой-то лучший встроенный способ взаимодействия с атрибутами и методами dunder: в вашем случае вы можете использовать type() для доступа к .__class__, например, type(model_object).objects.all().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...