Найти в Дзене
Декораторы в Python: как обернуть функцию в функциональность, не трогая её код
Вы написали полезную функцию. Всё работает. Но вдруг понадобилось замерять время её выполнения. Или логировать аргументы. Или проверять права доступа. Переписывать каждую функцию? Нет. В Python есть элегантный механизм — декораторы. Это функции, которые принимают другую функцию и возвращают её улучшенную версию. Представьте, что вы кладёте функцию в «обёртку», которая добавляет нужное поведение до или после вызова. Сегодня разберём: В Python функции — полноценные объекты. Их можно присваивать переменным, передавать в другие функции и возвращать из функций...
1 неделю назад
Итераторы и генераторы: как не взорвать память и писать элегантный код
Вы когда-нибудь пробовали создать список из миллиона чисел? Память начинает трещать по швам. А если нужно прочитать огромный лог-файл — загружать его целиком? Нет, есть способ лучше. Знакомьтесь: итераторы и генераторы. Они позволяют обрабатывать данные по одному элементу, не храня всё сразу. Это экономит память, ускоряет запуск и делает код чище. Итератор — это объект, который умеет выдавать элементы по одному. У него есть метод __next__(): при каждом вызове возвращается следующий элемент, а когда элементы кончаются — бросается исключение StopIteration...
1 неделю назад
Магические методы Python: как превратить свой класс в настоящего джедая
Вы уже умеете создавать классы, наследовать их и использовать полиморфизм. Но знаете ли вы, что можно заставить ваш собственный объект вести себя как список? Или как число? Или чтобы его можно было вызвать как функцию? Всё это делают магические методы (их ещё называют dunder-методы — от double underscore). Это специальные имена вроде __init__, __str__, __add__, которые Python вызывает автоматически в определённых ситуациях. Сегодня мы разберём самые полезные магические методы и превратим скучный класс в интеллектуальный объект...
1 неделю назад
Наследование в Python: почему не нужно изобретать велосипед каждый раз
Вы уже научились создавать классы и объекты. Теперь представьте, что вам нужно описать несколько похожих сущностей: например, в программе для зоомагазина есть Cat, Dog, Parrot. У каждого есть имя, возраст, метод make_sound(). Писать один и тот же код трижды? Конечно нет. Наследование позволяет создать родительский класс с общими свойствами, а дочерние классы добавят свои особенности. Наследование — это механизм, при котором один класс (дочерний) получает все атрибуты и методы другого (родительского)...
1 неделю назад
Классы и объекты: как перестать писать функции-одиночки и объединить данные с действиями
Вы уже умеете писать функции, использовать списки и словари, обрабатывать ошибки и даже собирать код в модули. Но есть одна вещь, которая отличает скрипты от настоящих программ — объектно-ориентированное программирование (ООП). Сегодня мы познакомимся с классами и объектами. Не пугайтесь — это просто способ упаковать данные и действия в одну красивую коробку. Представьте, что вы пишете программу для учёта студентов. У каждого студента есть имя, возраст, оценки. Без классов вам придётся хранить три...
2 недели назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала