tg-me.com/pyproglib/6568
Last Update:
Python — гибкий язык, и писать на нём можно в разных парадигмах. Но что удобнее, понятнее и «правильнее»?
class NumberProcessor:
def __init__(self, numbers):
self.numbers = numbers
def filter_even(self):
self.numbers = [n for n in self.numbers if n % 2 == 0]
return self
def square(self):
self.numbers = [n**2 for n in self.numbers]
return self
def get_result(self):
return self.numbers
processor = NumberProcessor([1, 2, 3, 4, 5, 6])
result = processor.filter_even().square().get_result()
print(result) # [4, 16, 36]
from functools import reduce
def filter_even(numbers):
return list(filter(lambda x: x % 2 == 0, numbers))
def square(numbers):
return list(map(lambda x: x**2, numbers))
numbers = [1, 2, 3, 4, 5, 6]
result = square(filter_even(numbers))
print(result) # [4, 16, 36]
numbers = [1, 2, 3, 4, 5, 6]
result = [n**2 for n in numbers if n % 2 == 0]
print(result) # [4, 16, 36]
Какой стиль ближе? Выбирайте свой лагерь и аргументируйте в комментах! 👇
👍 ООП — потому что читаемо и поддерживаемо
❤️ Функциональный стиль — минимум багов и максимум эффективности
🔥 Скрипты — зачем усложнять, если можно просто?
Библиотека питониста #междусобойчик