type(obj) и obj.__class__ в Python и изменение класса объекта.
mCoding
0:00 / 0:00
type(obj) и obj.__class__ в Python и изменение класса объекта.
24 075 просмотров · 3 года назад
mCoding
249 тыс. подписчиков
24 075 просмотров · 3 года назад
В чём разница?
В Python есть два способа доступа к типу объекта: type(obj) и obj.__class__. В чём разница? В этом видео мы видим, что они в целом одинаковы (и вам, вероятно, не стоит об этом беспокоиться), но есть разница в том, что класс может солгать о своём типе, перехватывая обращения к _class__. Встроенный тип, с другой стороны, всегда даст вам реальный тип объекта. Хотя, если класс пытается солгать о своём типе, возможно, у него есть на это веская причина, поэтому вы можете предпочесть использовать __class__. Также можно изменить объект __class_ во время выполнения после его создания, что действительно изменит тип, так что type(obj) и obj.__class__ сообщат новый тип. Есть некоторые ограничения (и варианты использования сомнительны!), но об этом полезно знать, если вдруг почувствуете, что происходит что-то странное.
― mCoding с Джеймсом Мёрфи (https://mcoding.io)
Исходный код: https://github.com/mCodingLLC/VideosS...
https://docs.python.org/3/reference/d...
ПОДДЕРЖИТЕ МЕНЯ ⭐
---------------------------------------------------
Зарегистрируйтесь на Patreon, чтобы получить роль спонсора и ранний доступ к видео!
/ mcoding
Хотите проявить щедрость, но у вас нет аккаунта Patreon? Сделайте пожертвование через PayPal! (Регистрация не требуется.)
https://www.paypal.com/donate/?hosted...
Хотите пожертвовать криптовалюту? Ознакомьтесь с остальными моими поддерживаемыми пожертвованиями на моём сайте!
https://mcoding.io/donate
Основные спонсоры и доноры: Jameson, Laura M, Dragos C, Vahnekie, Neel R, Matt R, Johan A, Casey G, Mark M, Mutual Information, Pi
БУДЬТЕ АКТИВНЫ В МОЁМ СООБЩЕСТВЕ 😄
---------------------------------------------------
Discord: / discord
Github: https://github.com/mCodingLLC/
Reddit: / mcoding
Facebook: / james.mcoding
ГЛАВЫ
---------------------------------------------------
0:00 Вступление
0:34 Как использовать type(obj)
1:43 А как насчёт obj.__class__?
3:08 Лжёте о своём _class_
3:56 Изменение _class_ во время выполнения
6:44 Пример: пользовательский тип модуля
7:36 Пример: чтение предварительно инициализированного объекта
9:34 Спасибо