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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет этот код?
Anonymous Quiz
30%
True
53%
False
12%
Ошибку
4%
Узнать ответ
Что выведет этот код?
Anonymous Quiz
62%
True
32%
False
5%
Ошибку
1%
Узнать ответ
Объекты - это экземпляры классов, а классы служат шаблонами для создания объектов. У каждого объекта есть свои собственные атрибуты (переменные, данные) и методы (функции, действия), которые определяют его поведение и взаимодействие с другими объектами.

Например, если у нас есть класс "Автомобиль", мы можем создать несколько объектов этого класса, таких как "Машина1" и "Машина2". Каждый объект будет иметь свои уникальные атрибуты, такие как "марка", "модель", и методы, например "завести двигатель" или "передвинуться вперед".

➡️ Преимущества использования объектов в Python

Во-первых, объектно-ориентированное программирование упрощает структурирование кода и делает его более логичным и понятным. Каждый объект отвечает только за свои данные и методы.

Во-вторых, объекты позволяют создавать сложные структуры данных и абстракции. Мы можем создавать классы, представляющие реальные или воображаемые объекты, и определять их взаимодействие друг с другом.
Что выведет этот код?
Anonymous Quiz
8%
0
63%
27
25%
Ошибку
4%
Узнать ответ
Какой из этих двух классов вызывается первым ?
Спросят с вероятностью 3%


При создании объекта класса в Python, порядок вызова конструкторов определяется методом разрешения порядка (MRO) и зависит от иерархии наследования.

Для примера с двумя классами, где один наследуется от другого:
class A:
def init(self):
print("Constructor of A")

class B(A):
def init(self):
print("Constructor of B")
super().__init()

# Создание экземпляра класса B
b = B()


Порядок вызова будет следующим:
1️⃣ При создании объекта класса B сначала вызывается его initinit.
2️⃣ Затем внутри конструктора B вызывается super().__init(), что приводит к вызову конструктора базового класса A.

Таким образом, сначала вызывается конструктор B, а затем конструктор A.

Метод разрешения порядка (MRO) определяет порядок обработки классов при наследовании. Для получения MRO для класса можно использовать атрибут mro или функцию mro().

Например:
print(B.mro())


Результатом будет кортеж, указывающий порядок разрешения методов для класса B. При множественном наследовании MRO становится еще более важным.

Важно помнить, что при создании объекта класса сначала вызывается конструктор самого класса, затем конструкторы его базовых классов в порядке, определенном MRO. В случае множественного наследования порядок вызова конструкторов определяется методом разрешения порядка (MRO).
Что выведет код сверху?
Anonymous Poll
23%
[1, 2, 3]
1%
[1, 2, 3, 4]
43%
[1, 2, 3, 5]
32%
[1, 2, 3, 4, 5]
Что выведет код?
Anonymous Quiz
5%
2
28%
3
9%
6
58%
Ошибку
Загрузка изображения

Для начала работы с изображением необходимо его загрузить с помощью функции open() из библиотеки PIL и сохранить в переменную. Например, следующий код загрузит изображение с именем "image.jpg":

from PIL import Image

image = Image.open("image.jpg")



После выполнения этого кода изображение будет загружено и готово к дальнейшей обработке.

➡️Изменение размера изображения

Библиотека PIL предоставляет функцию resize(), которая позволяет изменить размер изображения. Например, следующий код изменит размер изображения до 500 пикселей в ширину и 300 пикселей в высоту:

resized_image = image.resize((500, 300))


Вы можете указать любые значения для ширины и высоты в пикселях, чтобы получить нужный размер изображения.

➡️Сохранение изображения

После обработки изображения его можно сохранить в файл с помощью функции save().

resized_image.save("resized_image.jpg")


Также можно указать другой формат файла.