🐍 Укус питона 🐍
3.02K subscribers
565 photos
2 videos
272 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет этот код?
Anonymous Quiz
43%
True
27%
False
24%
Ошибку
6%
Узнать ответ
У списка (и только у него) есть специальные методы .sort() и .reverse(), которые выполняют те же действия, что и функции sorted() и reversed(), но с некоторыми отличиями:

✔️ Изменяют сам исходный список, а не создают новый.

✔️ Возвращают None, а не новый список.

✔️ Поддерживают те же дополнительные аргументы.
Что выведет этот код?
Anonymous Quiz
8%
4
35%
3
51%
Ошибку
6%
Узнать ответ
Что выведет код?
Anonymous Quiz
3%
14
71%
48
9%
64
18%
Ошибку
Что такое diamondproblem ?
Спросят с вероятностью 3%

👉 Проблема ромбовидного наследования (Diamond Problem) возникает в объектно-ориентированном программировании при использовании множественного наследования. Она возникает из-за неоднозначности, когда класс наследует от нескольких классов, имеющих общего предка.

Рассмотрим пример:
class A:
def method(self):
print("Method in A")

class B(A):
def method(self):
print("Method in B")

class C(A):
def method(self):
print("Method in C")

class D(B, C):
pass

d = D()
d.method()


В этом примере:

Класс A является базовым классом.
Классы B и C наследуют от класса A и переопределяют метод method.
Класс D наследует от классов B и C.

🔼 Когда мы вызываем метод method через экземпляр класса D (d.method()), возникает вопрос: какой именно метод должен быть вызван - из класса B или из класса C? Это и есть проблема ромбовидного наследования.

Решение проблемы ромбовидного наследования

Использует метод разрешения порядка (MRO - Method Resolution Order) для решения этой проблемы. MRO определяет порядок, в котором методы должны вызываться в случае множественного наследования. Для просмотра MRO можно использовать атрибут mro или функцию mro().
print(D.mro)


Результат будет следующим:
(<class 'main.D'>, <class 'main.B'>, <class 'main.C'>, <class 'main.A'>, <class 'object'>)


Согласно этому порядку, метод method будет взят из класса B, так как он идёт первым в MRO. Поэтому при вызове d.method(), выведется:
Method in B

Если классы B и C используют super(), можно правильно вызвать методы всех классов-предков:
class A:
def method(self):
print("Method in A")

class B(A):
def method(self):
print("Method in B")
super().method()

class C(A):
def method(self):
print("Method in C")
super().method()

class D(B, C):
def method(self):
print("Method in D")
super().method()

d = D()
d.method()


Результат выполнения будет:
Method in D
Method in B
Method in C
Method in A


В этом случае методы всех классов вызываются в порядке, определённом MRO.

🔼Проблема ромбовидного наследования возникает при множественном наследовании и приводит к неоднозначности, какой метод вызывать. Решает эту проблему с помощью MRO (Method Resolution Order), определяющего порядок вызова методов.
Что выведет этот код?
Anonymous Quiz
10%
True
35%
Ничего
44%
AssertionError
12%
Узнать ответ
✈️WebApp (или веб-приложение) в Telegram — это приложение, которое запускается прямо внутри мессенджера. Это делает его доступным в любое время и в любом месте, где у вас есть доступ к Telegram.

🔎Преимущества WebApp в Telegram:

➡️Удобство и доступность

WebApp работает прямо в Telegram, поэтому вам не нужно устанавливать дополнительные приложения.

➡️Мгновенное обновление

Веб-приложения всегда обновлены до последней версии. Вам не нужно беспокоиться об установке обновлений — разработчики делают это за вас!

➡️Кроссплатформенность

WebApp работает одинаково хорошо на всех устройствах: будь то iOS, Android или десктопная версия Telegram. Это значит, что вы получите единый опыт использования независимо от вашего устройства.

➡️Богатый функционал

WebApp предоставляет разработчикам больше возможностей для создания функциональных и интерактивных приложений. Это могут быть игры, сервисы для бронирования, образовательные платформы и многое другое!
Что выведет этот код?
Anonymous Quiz
43%
[1, 2]
26%
1 2
19%
[1, 2, 3]
13%
Узнать ответ
🚀 Почему Python — лучший язык для создания Telegram-ботов?

Только начинаете свой путь в разработке? Ждём вас на открытом практическом уроке от OTUS, где мы:
— установим и настроим необходимые инструменты для создания Telegram-ботов;
— рассмотрим формат работы с библиотекой Python-telegram-bot;
— создадим простого бота;
— расширим его функциональность с помощью дополнительных возможностей;
— рассмотрим примеры работы готовых ботов;
— выясним, почему именно Python идеален для создания Telegram-ботов. 

Встречаемся 10 июля в 20:00 мск в преддверии старта курса «Специализация Python Developer». Все участники вебинара получат специальную цену на обучение.

🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок и создать классный проект для своего портфолио: https://otus.pw/wh80/?erid=LjN8KLEyM