python如何返回内置函数

问题描述 投票:0回答:1

我很难理解内置函数的概念,我有这段代码:

def reversed_args(f):  # I can only change code in this function
    a = args[::-1]
    if func_name in int_func_map:
        resultados = int_func_map[func_name](*a)
    else:
        resultados = string_func_map[func_name](*a)
    return resultados


int_func_map = {
    'pow': pow,
    'cmp': lambda a, b: 0 if a == b else [1, -1][a < b],
}

string_func_map = {
    'join_with': lambda separator, *args: separator.join(args),
    'capitalize_first_and_join': lambda first, *args: ''.join([first.upper()] + list(args)),
}

queries = 1
for _ in range(queries):
    line = input().split()
    func_name, args = line[0], line[1:]
    if func_name in int_func_map:
        args = list(map(int, args))
        print(reversed_args(int_func_map[func_name])(*args))
    else:
        print(reversed_args(string_func_map[func_name])(*args))

我的归因是

pow 2 3

但是当我返回答案时,我收到一个异常消息,说“'int'对象不可调用”,任何人都可以指出我的原因

python python-3.x built-in
1个回答
0
投票

经过一段时间的思考,我已经设法满足了我的需求,这是我使其运行所需的代码:

def reversed_args(f):
    if func_name in int_func_map:
        def resultado(*kwargs):
            return int_func_map[func_name](*args[::-1])
    else:
        def resultado(*kwargs):
            return string_func_map[func_name](*args[::-1])
    return resultado

我想有一种更好的方法,但是我没有找到

© www.soinside.com 2019 - 2024. All rights reserved.