attrs — это Python-пакет, который снимает рутину при написании классов и автоматически реализует «ду́ндер»-методы (
__init__, __repr__, __eq__ и др.).📌 Используется даже NASA в миссиях на Марс с 2020 года!
Основная цель — писать лаконичный и корректный код без потерь производительности.
Пример:
from attrs import asdict, define, make_class, Factory
@define
class SomeClass:
a_number: int = 42
list_of_numbers: list[int] = Factory(list)
def hard_math(self, another_number):
return self.a_number + sum(self.list_of_numbers) * another_number
sc = SomeClass(1, [1, 2, 3])
print(sc) # SomeClass(a_number=1, list_of_numbers=[1, 2, 3])
print(sc.hard_math(3)) # 19
print(asdict(sc)) # {'a_number': 1, 'list_of_numbers': [1, 2, 3]}
attrs автоматически добавляет:
✔️ читаемый
__repr__✔️ методы сравнения
✔️
__init__ и управление аргументами✔️ фабрики значений (
Factory)✔️ конструктор классов на лету (
make_class)📱 Репозиторий
🐸 Библиотека питониста
#буст
