Определение собственной функции в Python
Функции — это фундаментальный строительный блок в Python. Они позволяют организовать код, переиспользовать его и сделать программу более читаемой. Создание собственной функции — это важный шаг на пути к более эффективной разработке.
Основы:
Функции в Python определяются с помощью ключевого слова
Теперь ты можешь вызвать функцию:
Аргументы и параметры
Ты можешь передавать данные в функцию через параметры:
Вызов:
Возврат значения
С помощью ключевого слова
Аргументы по умолчанию
Функции могут иметь параметры с значениями по умолчанию:
Именованные аргументы
Можно передавать аргументы явно по имени:
Возвращение нескольких значений
Функции могут возвращать несколько значений с помощью кортежей:
https://realpython.com/defining-your-own-python-function/
#python
👉 @python_real
Функции — это фундаментальный строительный блок в Python. Они позволяют организовать код, переиспользовать его и сделать программу более читаемой. Создание собственной функции — это важный шаг на пути к более эффективной разработке.
Основы:
def
и имя функцииФункции в Python определяются с помощью ключевого слова
def
, за которым следует имя функции, круглые скобки (в которых можно указать параметры), и двоеточие:
def greet():
print("Привет!")
Теперь ты можешь вызвать функцию:
greet()
Аргументы и параметры
Ты можешь передавать данные в функцию через параметры:
def greet(name):
print(f"Привет, {name}!")
Вызов:
greet("Oleg")
Возврат значения
С помощью ключевого слова
return
можно вернуть результат из функции:
def add(a, b):
return a + b
result = add(3, 4)
print(result) # 7
Аргументы по умолчанию
Функции могут иметь параметры с значениями по умолчанию:
def greet(name="друг"):
print(f"Привет, {name}!")
greet() # Привет, друг!
greet("Oleg") # Привет, Oleg!
Именованные аргументы
Можно передавать аргументы явно по имени:
def describe_pet(animal, name):
print(f"У меня есть {animal}, его зовут {name}.")
describe_pet(animal="кот", name="Барсик")
Возвращение нескольких значений
Функции могут возвращать несколько значений с помощью кортежей:
def get_point():
return (3, 4)
x, y = get_point()
https://realpython.com/defining-your-own-python-function/
#python
👉 @python_real
👍3
17 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxMSzZ4
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Python 3.14. T-строки в Python: новый способ работы со строками?
Python предлагает множество способов создания строк — от обычных строк до f-строк и raw-строк. Но начиная с Python 3.12, появляется новый способ: t-строки. Это экспериментальный синтаксис, предлагаемый для улучшения интернационализации (i18n) строк.
В этом посте мы кратко рассмотрим:
🔘 Что такое t-строки?
🔘 Зачем они нужны?
🔘 Как их использовать?
Что такое t-строки?
Такой синтаксис эквивалентен:
Зачем это нужно?
В больших проектах часто нужно поддерживать несколько языков. В Python это обычно делается через
Но такой подход:
- неявный,
- подвержен ошибкам (особенно при интерполяции),
- не всегда дружелюбен к линтерам и инструментам сборки переводов.
Как это работает?
Полный пример:
Это даст тот же результат, что и с
Совместимость и текущее состояние
Пока t-строки находятся в стадии эксперимента. Они могут измениться или быть удалены в будущих релизах. Если вы работаете с интернационализацией и переводами — следите за этой фичей. Она может значительно упростить жизнь в будущем.
https://realpython.com/python-t-strings/
#python
👉 @python_real
Python предлагает множество способов создания строк — от обычных строк до f-строк и raw-строк. Но начиная с Python 3.12, появляется новый способ: t-строки. Это экспериментальный синтаксис, предлагаемый для улучшения интернационализации (i18n) строк.
В этом посте мы кратко рассмотрим:
Что такое t-строки?
t"..."
— это новый синтаксис строк, похожий на f-строки, но предназначенный для упрощения перевода строк. Они позволяют использовать интерполяцию переменных и одновременно автоматически отмечать строку как подлежащую переводу.
name = "Алиса"
print(t"Привет, {name}!")
Такой синтаксис эквивалентен:
from gettext import gettext as _
name = "Алиса"
print(_("Привет, {name}!").format(name=name))
Зачем это нужно?
В больших проектах часто нужно поддерживать несколько языков. В Python это обычно делается через
gettext
, где строки передаются в функцию _()
и затем интерполируются вручную:
print(_("Привет, {name}!").format(name=name))
Но такой подход:
- неявный,
- подвержен ошибкам (особенно при интерполяции),
- не всегда дружелюбен к линтерам и инструментам сборки переводов.
t
-строки делают этот процесс более чистым и читаемым.Как это работает?
t
-строки являются экспериментальной функцией в Python 3.12, и для их использования нужно включить feature flag:
from __future__ import tstrings
Полный пример:
from __future__ import tstrings
name = "Алиса"
print(t"Привет, {name}!")
Это даст тот же результат, что и с
gettext
, но с более читаемым и лаконичным синтаксисом.Совместимость и текущее состояние
Пока t-строки находятся в стадии эксперимента. Они могут измениться или быть удалены в будущих релизах. Если вы работаете с интернационализацией и переводами — следите за этой фичей. Она может значительно упростить жизнь в будущем.
https://realpython.com/python-t-strings/
#python
👉 @python_real
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Async IO в Python: что это и как с этим работать
Асинхронное программирование в Python — это подход, позволяющий выполнять несколько операций одновременно, не блокируя основной поток выполнения. Это особенно полезно для задач ввода-вывода (I/O), таких как сетевые запросы, работа с файлами и базы данных.
Ключевые понятия
* Сопрограммы (coroutines) — функции, которые можно приостанавливать и возобновлять.
* Событийный цикл (event loop) — механизм, управляющий выполнением асинхронных задач.
* await — оператор, который приостанавливает выполнение до завершения асинхронной операции.
Пример кода:
Когда использовать async?
* Когда приложение работает с большим количеством сетевых запросов.
* Для параллельного выполнения долгих операций ввода-вывода.
* Когда требуется высокая отзывчивость программы.
Когда не стоит использовать?
* Для вычислительно тяжелых задач (лучше использовать multiprocessing).
Асинхронность в Python строится вокруг
https://realpython.com/async-io-python/
#python
👉 @python_real
Асинхронное программирование в Python — это подход, позволяющий выполнять несколько операций одновременно, не блокируя основной поток выполнения. Это особенно полезно для задач ввода-вывода (I/O), таких как сетевые запросы, работа с файлами и базы данных.
Ключевые понятия
* Сопрограммы (coroutines) — функции, которые можно приостанавливать и возобновлять.
* Событийный цикл (event loop) — механизм, управляющий выполнением асинхронных задач.
* await — оператор, который приостанавливает выполнение до завершения асинхронной операции.
Пример кода:
import asyncio
async def main():
print("Начало")
await asyncio.sleep(1)
print("Конец")
asyncio.run(main())
Когда использовать async?
* Когда приложение работает с большим количеством сетевых запросов.
* Для параллельного выполнения долгих операций ввода-вывода.
* Когда требуется высокая отзывчивость программы.
Когда не стоит использовать?
* Для вычислительно тяжелых задач (лучше использовать multiprocessing).
Асинхронность в Python строится вокруг
asyncio
, но есть и дополнительные библиотеки (например, aiohttp
для асинхронных HTTP-запросов).https://realpython.com/async-io-python/
#python
👉 @python_real
👍4❤1
Python Mixins: мощный инструмент для повторного использования кода
В Python Mixin — это особый вид класса, который используется для расширения функционала других классов без необходимости создавать сложные иерархии наследования. Mixin-классы сами по себе, как правило, не предназначены для самостоятельного использования — они лишь добавляют дополнительное поведение.
Основная идея Mixin
Mixin — это способ «влить» функциональность в класс, комбинируя его с другими классами через множественное наследование.
Например, если у нас есть класс
Принципы проектирования Mixin-классов
1. Изолированная функциональность — Mixin должен решать только одну конкретную задачу.
2. Не самостоятельный — Mixin не предназначен для создания экземпляров напрямую.
3. Малые зависимости — Mixin не должен жёстко зависеть от конкретной реализации других классов.
4. Имя — принято добавлять суффикс
Зачем использовать Mixin
- Повторное использование кода без дублирования.
- Упрощение кода и снижение связности.
- Гибкость при расширении функционала.
Пример: добавление сериализации в JSON
Когда Mixin лучше не использовать
- Когда поведение может быть реализовано через композицию.
- Если множественное наследование приведёт к сложной и запутанной иерархии.
- Когда Mixin начинает выполнять слишком много функций.
Mixin — это мощный и элегантный способ добавлять функционал в классы Python, сохраняя код чистым и гибким. Но использовать их стоит осторожно, чтобы избежать проблем с читаемостью и сложным наследованием.
https://realpython.com/python-mixin/
#python
👉 @python_real
В Python Mixin — это особый вид класса, который используется для расширения функционала других классов без необходимости создавать сложные иерархии наследования. Mixin-классы сами по себе, как правило, не предназначены для самостоятельного использования — они лишь добавляют дополнительное поведение.
Основная идея Mixin
Mixin — это способ «влить» функциональность в класс, комбинируя его с другими классами через множественное наследование.
Например, если у нас есть класс
LoggerMixin
, он может добавлять возможность логирования в любой класс, который его наследует.
class LoggerMixin:
def log(self, message):
print(f"[LOG]: {message}")
class User(LoggerMixin):
def __init__(self, name):
self.name = name
user = User("Alice")
user.log("Пользователь создан") # [LOG]: Пользователь создан
Принципы проектирования Mixin-классов
1. Изолированная функциональность — Mixin должен решать только одну конкретную задачу.
2. Не самостоятельный — Mixin не предназначен для создания экземпляров напрямую.
3. Малые зависимости — Mixin не должен жёстко зависеть от конкретной реализации других классов.
4. Имя — принято добавлять суффикс
Mixin
в название.Зачем использовать Mixin
- Повторное использование кода без дублирования.
- Упрощение кода и снижение связности.
- Гибкость при расширении функционала.
Пример: добавление сериализации в JSON
import json
class ToJSONMixin:
def to_json(self):
return json.dumps(self.__dict__)
class Point(ToJSONMixin):
def __init__(self, x, y):
self.x = x
self.y = y
p = Point(4, 5)
print(p.to_json()) # {"x": 4, "y": 5}
Когда Mixin лучше не использовать
- Когда поведение может быть реализовано через композицию.
- Если множественное наследование приведёт к сложной и запутанной иерархии.
- Когда Mixin начинает выполнять слишком много функций.
Mixin — это мощный и элегантный способ добавлять функционал в классы Python, сохраняя код чистым и гибким. Но использовать их стоит осторожно, чтобы избежать проблем с читаемостью и сложным наследованием.
https://realpython.com/python-mixin/
#python
👉 @python_real
❤3👍2
14 августа (уже в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2