我很难理解内置函数的概念,我有这段代码:
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'对象不可调用”,任何人都可以指出我的原因
经过一段时间的思考,我已经设法满足了我的需求,这是我使其运行所需的代码:
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
我想有一种更好的方法,但是我没有找到