5 практических способов преобразования строки в имя функции в Python

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

Метод 1: использование функции globals()
Пример кода:

def greet():
    print("Hello, World!")
function_name = "greet"
func = globals()[function_name]
func()  # Output: Hello, World!

Метод 2: использование функции getattr()
Пример кода:

import math
function_name = "sqrt"
func = getattr(math, function_name)
result = func(16)
print(result)  # Output: 4.0

Метод 3: использование функции eval()
Пример кода:

function_name = "print"
code = f"{function_name}('Hello, World!')"
eval(code)  # Output: Hello, World!

Метод 4: использование функции locals()
Пример кода:

def say_hello():
    print("Hello!")
def say_goodbye():
    print("Goodbye!")
function_name = "say_hello"
func = locals()[function_name]
func()  # Output: Hello!

Метод 5. Использование сопоставления словаря
Пример кода:

def add(a, b):
    return a + b
def subtract(a, b):
    return a - b
function_name = "add"
function_mapping = {
    "add": add,
    "subtract": subtract
}
func = function_mapping[function_name]
result = func(5, 3)
print(result)  # Output: 8

В этой статье мы рассмотрели пять практических методов преобразования строки в имя функции в Python. Мы узнали, как использовать функции globals()и locals(), использовать функцию getattr(), использовать функцию eval()и создать отображение словаря. Применяя эти методы, вы можете динамически вызывать функции на основе строк, обеспечивая большую гибкость и настройку вашего кода.