attrs
UtilitiesКласс без шаблонов
Обзор attrs
attrs (импортированный как attr) — это пакет Python, который позволяет писать краткие и правильные классы Python без шаблонов. Он автоматически генерирует __init__, __repr__, __eq__ и другие методы dunder, а также поддерживает валидаторы, конвертеры, слоты и замороженные (неизменяемые) классы.
attrs — популярный выбор для определения чистых классов хранения данных в Python, и он напрямую вдохновил встроенный модуль классов данных Python. ВPyRunattrs загружается мгновенно через micropip, что делает эту библиотеку отличной библиотекой для изучения при изучении шаблонов проектирования классов.
Код и вывод выполнения
Очистите классы Python с помощью валидаторов attrs.
import attr
@attr.s(auto_attribs=True)
class Point:
x: float
y: float
def distance_to(self, other: "Point") -> float:
return ((self.x - other.x)**2 + (self.y - other.y)**2)**0.5
@attr.s(auto_attribs=True)
class Polygon:
name: str
vertices: list = attr.Factory(list)
def perimeter(self) -> float:
pts = self.vertices + [self.vertices[0]]
return sum(pts[i].distance_to(pts[i+1]) for i in range(len(pts)-1))
triangle = Polygon("Triangle", [
Point(0, 0), Point(4, 0), Point(0, 3)
])
print(repr(triangle))
print(f"Perimeter: {triangle.perimeter():.4f}")
print(f"Expected : 12.0000 (3-4-5 right triangle)")Сопутствующие пакеты
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Циклы Python
Узнайте, как использовать циклы Python для перебора данных. Освойте циклы for, while, прерывание, продолжение и лучшие практики работы с циклами с помощью интерактивных примеров.
Как отсортировать список в Python
Узнайте, как сортировать список в Python с помощью метода sort() и функции sorted(). Ознакомьтесь с примерами пользовательской сортировки ключей и обратного порядка.
Шпаргалка по строковым методам Python
Полное справочное руководство по манипулированию строками в Python. Мастер форматирования, поиска, разделения, замены и проверки свойств строк.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.