Декоратор
@property
позволяет превратить метод класса в атрибут, добавив к нему логику при чтении или записи.class User:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name.title()
u = User("анна")
print(u.name) # Анна
📌 Удобно для валидации, форматирования и инкапсуляции, не меняя интерфейс класса
Please open Telegram to view this post
VIEW IN TELEGRAM
В Python для проверки типа объекта есть два подхода:
•
type(obj)
— строгая проверка на конкретный класс•
isinstance(obj, Class)
— проверка с учётом наследования.class Animal: pass
class Dog(Animal): pass
d = Dog()
print(type(d) == Animal) # False
print(isinstance(d, Animal)) # True
📌 Обычно лучше использовать isinstance, так как он учитывает наследование и делает код гибче
Please open Telegram to view this post
VIEW IN TELEGRAM
pop()
в Python и когда его применять?Метод
pop()
удаляет элемент из списка по индексу и возвращает его. По умолчанию убирается последний элемент. Это удобно, когда нужно извлечь и использовать данные, одновременно убрав их из коллекции.numbers = [10, 20, 30, 40]
last = numbers.pop()
print(last) # ➜ 40
print(numbers) # ➜ [10, 20, 30]
first = numbers.pop(0)
print(first) # ➜ 10
print(numbers) # ➜ [20, 30]
pop() удобно использовать при работе со стеками и очередями, а также когда нужно пошагово обрабатывать список, убирая уже использованные элементы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Ответ:
Anonymous Quiz
0%
1; 1 1; [2, 3] []
40%
1; 2 2; [] []
20%
1; 2 2; [3] [3]
40%
x; 1 1; [2, 3] [2, 3]
В Python каждый файл можно запускать напрямую или импортировать как модуль.
Переменная
__name__
помогает отличить эти случаи.def greet():
print("Привет!")
if __name__ == "__main__":
greet() # выполнится только при прямом запуске файла
📌 Это позволяет писать код, который работает и как самостоятельная программа, и как импортируемый модуль без лишних запусков
Please open Telegram to view this post
VIEW IN TELEGRAM
В Python можно передавать переменное количество аргументов в функцию:
*args
собирает позиционные аргументы в кортеж**kwargs
собирает именованные аргументы в словарьdef show_info(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
show_info(1, 2, 3, name="Анна", age=25)
args: (1, 2, 3)
kwargs: {'name': 'Анна', 'age': 25}
📌 Удобно для написания универсальных функций и работы с динамическими параметрами
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
zip()
объединяет элементы нескольких последовательностей в кортежи по индексам.Работает до конца самой короткой коллекции
names = ["Анна", "Борис", "Вера"]
scores = [95, 88, 76]
for name, score in zip(names, scores):
print(f"{name}: {score}")
Анна: 95
Борис: 88
Вера: 76
📌 Удобно для параллельного перебора списков
Please open Telegram to view this post
VIEW IN TELEGRAM
itertools.product()
создаёт декартово произведение — все возможные комбинации элементов из нескольких последовательностейfrom itertools import product
colors = ["red", "green"]
sizes = ["S", "M", "L"]
for combo in product(colors, sizes):
print(combo)
('red', 'S')
('red', 'M')
('red', 'L')
('green', 'S')
('green', 'M')
('green', 'L')
📌 Полезно при генерации вариантов, тестов или переборе параметров
Please open Telegram to view this post
VIEW IN TELEGRAM