Getters и Setters в Python — это мощный инструмент для управления доступом к атрибутам объекта.
В статье детально рассматривается, как их использовать для инкапсуляции данных и контроля за изменениями свойств объекта.
Основные моменты:
- Объяснение, почему в Python прямой доступ к атрибутам предпочтительнее, но геттеры и сеттеры остаются важными.
- Использование декоратора
- Примеры, как эти механизмы помогают улучшить читаемость и безопасность кода.
https://realpython.com/python-getter-setter/
#python
👉 @python_real
В статье детально рассматривается, как их использовать для инкапсуляции данных и контроля за изменениями свойств объекта.
Основные моменты:
- Объяснение, почему в Python прямой доступ к атрибутам предпочтительнее, но геттеры и сеттеры остаются важными.
- Использование декоратора
@property для создания свойства с геттером и сеттером. - Примеры, как эти механизмы помогают улучшить читаемость и безопасность кода.
https://realpython.com/python-getter-setter/
#python
👉 @python_real
👍3❤1
Как использовать
Рассматриваются основные аспекты работы с этим файлом, его структура и как он помогает в управлении зависимостями, настройке инструментов и организации проектов.
Краткий обзор:
-
- Позволяет определять сборщики (build backends), такие как
- Упрощает настройку инструментов вроде
- Дает возможность управлять зависимостями и версиями пакетов.
Использование
https://realpython.com/python-pyproject-toml/
#python
👉 @python_real
pyproject.toml в PythonРассматриваются основные аспекты работы с этим файлом, его структура и как он помогает в управлении зависимостями, настройке инструментов и организации проектов.
Краткий обзор:
-
pyproject.toml появился в PEP 518 и стал стандартом для описания конфигурации Python-проектов.- Позволяет определять сборщики (build backends), такие как
setuptools или poetry.- Упрощает настройку инструментов вроде
black, mypy и pytest.- Дает возможность управлять зависимостями и версиями пакетов.
Использование
pyproject.toml делает проекты более структурированными и гибкими, особенно при работе с различными инструментами и системами сборки.https://realpython.com/python-pyproject-toml/
#python
👉 @python_real
👍2❤1
🚀 Вышла интересная статья о сравнении UV и pip - двух инструментов для управления зависимостями в Python.
pip - стандартный пакетный менеджер Python, который знаком каждому разработчику. Работает стабильно, но не отличается высокой скоростью.
UV - современная альтернатива от Astral (разработчиков Ruff). Его главная фишка - невероятная скорость. Он значительно быстрее pip и poetry благодаря продуманной архитектуре и кэшу.
В статье разбираются:
- ключевые различия в работе с зависимостями;
- производительность и удобство использования;
- примеры установки пакетов и сборки окружения;
- сценарии, где UV может полностью заменить pip.
Если вы часто работаете с Python-проектами и хотите ускорить установку библиотек, стоит присмотреться к UV.
https://realpython.com/uv-vs-pip/
#python
👉 @python_real
pip - стандартный пакетный менеджер Python, который знаком каждому разработчику. Работает стабильно, но не отличается высокой скоростью.
UV - современная альтернатива от Astral (разработчиков Ruff). Его главная фишка - невероятная скорость. Он значительно быстрее pip и poetry благодаря продуманной архитектуре и кэшу.
В статье разбираются:
- ключевые различия в работе с зависимостями;
- производительность и удобство использования;
- примеры установки пакетов и сборки окружения;
- сценарии, где UV может полностью заменить pip.
Если вы часто работаете с Python-проектами и хотите ускорить установку библиотек, стоит присмотреться к UV.
https://realpython.com/uv-vs-pip/
#python
👉 @python_real
👍3
В Python стрелки (
Пример:
Здесь:
*
*
Можно использовать любые типы из модуля
Аннотации никак не влияют на исполнение кода, это всего лишь type hints.
https://realpython.com/what-does-arrow-mean-in-python/
#python
👉 @python_real
->) используются в аннотациях функций для указания возвращаемого типа. Это не строгая проверка типов, а лишь подсказка для разработчиков и инструментов (например, mypy, IDE).Пример:
def greet(name: str) -> str:
return "Hello, " + name
Здесь:
*
name: str — аргумент name должен быть строкой.*
-> str — функция возвращает строку.Можно использовать любые типы из модуля
typing или collections.abc, например:
from typing import List, Dict, Optional
def get_users() -> List[str]:
return ["Alice", "Bob"]
def find_user(user_id: int) -> Optional[Dict[str, str]]:
if user_id == 1:
return {"name": "Alice"}
return None
Аннотации никак не влияют на исполнение кода, это всего лишь type hints.
https://realpython.com/what-does-arrow-mean-in-python/
#python
👉 @python_real
👍4