Как я могу определить функцию Python для этого ввода - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно определить функцию с именем get function, чтобы получить значения ниже входных данных

ls = get_func(['square', 'circle', 'rectangle', 'triangle'])

//if it was square get one input ,circle would get two input ,rectangle get get three input  

print(ls[0](1))
print(ls[1](2))
print(ls[2](2, 4))
print(ls[3](4, 5))

1 Ответ

0 голосов
/ 25 октября 2019

Вот как вы можете определить функцию, которая возвращает список функций:

def get_func(func_names):
    """Return a list of functions corresponding to a list of names."""

    def square(x):
        return x * x

    def circle(x, y):
        return x * y

    def rectangle(x, y):
        pass

    def triangle(x, y):
        pass

    func_by_name = {
        'square': square,
        'circle': circle,
        'rectangle': rectangle,
        'triangle': triangle,
    }

    return [func_by_name[name] for name in func_names]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...