Рубрики
Без рубрики

Как назначить функцию переменной в Python?

Вызов: Дано функция f. Как назначить функцию переменной G, чтобы вы могли назвать G (), и она запускается функцией f ()? def f (): печать (‘finxter’) # Назначьте функцию f to g g () Ваш желаемый выход – это функция F, вывод F: Finxter Как сделать это в самом питоновом пути? Обзор: Мы изучаем два … Как назначить функцию переменной в Python? Подробнее “

Автор оригинала: Chris.

Вызов : Дано функция f . Как назначить функцию переменной G Так что вы можете позвонить g() И это работает функция f () ?

def f():
    print('Finxter')

# Assign function f to g
g()

Ваш желаемый выход – это функция F Выход:

Finxter

Как сделать это в самом питоновом пути?

Обзор: Мы изучаем два метода для достижения этой проблемы. Вы можете запустить их в нашей интерактивной ноутбуке Jupyter или сначала прочитал следующие объяснения.

Давайте погрузимся в два метода!

Метод 1: Назначьте объект функции к новой имени переменной

Простой способ выполнить задачу – создать новое имя переменной G и назначить функциональный объект f к новой переменной с помощью оператора.

Вот фрагмент кода, который решает проблему:

# Method 1
def f():
    print('Finxter')

# Assign function f to g
g = f

# Run g
g()

Вывод – ожидаемый выход функции F :

Finxter

Причина в том, что обе переменные указывают на тот же объект функции в памяти. Вы можете увидеть это в следующем инструменте визуализатора памяти:

Нажмите Далее, чтобы исследовать, как изменяется память с разворачивающим кодом.

Способ 2: функция обертки лямбда

Вы также можете использовать лямбда Функция, которая является анонимным объектом функций без имени. лямбда Функция занимает ноль или более аргументов и возвращает результат выражения после толстой кишки. В нашем случае функция Lambda просто обернет оригинальную функцию f () что означает, что он внутренне работает f () и возвращает F возвращаемое значение. Новый объект функции ведет себя аналогично F Отказ

Вот как этот метод решает нашу задачу:

# Method 2: Lambda Wrapper Function
def f():
    print('Finxter')

# Create Lambda Wrapper Function
g = lambda : f()

# Run g
g()

Вывод одинаково:

Finxter

Давайте проверим, насколько хорошо вы поняли представленные концепции в этой статье.

[Python Puzzle] Проверить свои навыки переименования функций

Python Puzzles поможет вам тренировать свои быстрые навыки понимания кода. Можете ли вы понять этот код головоломки?

def func(x):
    return x+1

f = func
print(f(2) + func(2))

Что такое выход этого кода фрагмент?

Объяснение : Избыточный код указывает на плохое стиль программирования. Отличный способ избежать резкого кода задан функциями.

Функции обобщены определенное поведение и инкапсулируют последовательность программных инструкций. Идеальная функция решает одну семантическую цель высокого уровня. Например, вы можете инкапсулировать сложную задачу, например поиск в Интернете в функцию. Таким образом, сложная задача становится простой одноклассником: вызывая функцию. Функции позволяют другим повторно использовать свой код и позволяет повторно использовать код других людей. Вы стоите на плечах гигантов.

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

Можно переименовать вашу функцию в таблице символов. Это так же просто, как присвоение имени функции новой переменной (например, F ). После вызова функции интерпретатор Python найдет переименованную функцию в таблице и выполнить ее. Это делает вашу жизнь проще при работе с кодом других людей, которых вам не разрешено меняться.

Вы можете проверить вывод этой головоломки на нашу интерактивную головоломку App Finxter.com. Вы мастер-кодер?

Проверьте свои навыки сейчас!

Связанное видео.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/daily-python-puzzle-relabeling-functions/”