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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
🔎Объекты - это экземпляры классов, и классы являются шаблонами для создания объектов. Каждый объект имеет свои собственные атрибуты (переменные, данные) и методы (функции, действия), которые определяют его поведение и взаимодействие с другими объектами.

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

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

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

Во-вторых, объекты позволяют создавать сложные структуры данных и абстракции. Мы можем создавать классы, которые представляют реальные или воображаемые объекты, и определять, их взаимодействие друг с другом.
Что выведет этот код?
Anonymous Poll
4%
2
36%
2.67
51%
2.68
5%
Ошибку
4%
Узнать ответ
Что выведет этот код?
Anonymous Poll
49%
0 1
16%
1 2
30%
Ошибку
4%
Узнать ответ
🕔Один из самых простых способов измерения времени выполнения кода в Python – использование модуля time. Этот модуль предоставляет функцию time(), которая возвращает текущее время в секундах с момента начала эпохи. Вы можете использовать эту функцию до и после куска кода, скорость выполнения которого вы хотите измерить, а затем вычесть одно значение из другого, чтобы получить общее время выполнения.

➡️Пример использования модуля time:

import time

start_time = time.time()

# Код, скорость выполнения которого вы хотите измерить
for i in range(0, 10000):
pass

end_time = time.time()

execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")
👍1
Что выведет код сверху?
Anonymous Poll
21%
1
18%
2
45%
3
15%
Ошибка
🍾4
💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr

class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.
Что выведте этот код?
Anonymous Poll
7%
3
81%
3.0
8%
Ошибку
4%
Узнать ответ
Что выведет этот код?
Anonymous Poll
25%
[0, 1j, 2]
12%
[0, 2, 1j]
57%
Ошибку
6%
Узнать ответ