Sobes.tech
Back to questions
Junior — Middle
63

Какие виды инструментов и возможностей доступны для функции в контексте ее использования и разработки?

Answer from AI

sobes.tech AI

В Python функции обладают множеством инструментов и возможностей, которые облегчают их использование и разработку:

  • Аргументы с разными способами передачи: позиционные, именованные, с умолчаниями, *args и **kwargs для переменного числа аргументов.
  • Декораторы: позволяют оборачивать функции для расширения их поведения без изменения исходного кода.
  • Атрибуты функции: можно добавлять свои атрибуты к функциям для хранения дополнительной информации.
  • Аннотации типов: помогают документировать и проверять типы аргументов и возвращаемого значения.
  • Вложенные функции и замыкания: функции внутри функций, которые могут захватывать переменные из внешнего контекста.
  • Генераторы: функции, которые возвращают итераторы с помощью yield.

Пример использования декоратора и аннотаций:

def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Вызов функции {func.__name__}")
        return func(*args, **kwargs)
    return wrapper

@decorator
def greet(name: str) -> str:
    return f"Привет, {name}!"

print(greet("Мир"))

Эти возможности делают функции в Python очень гибкими и мощными.