我的函数向我返回了一个函数,但显示错误,没有输出?

时间:2019-02-05 02:50:56

标签: python python-3.x

我正在尝试返回一个函数,但是它不起作用:

def to_power(x): # x = 3
    def calc_power(num): # num = 2
        return num**x # 2**3 = 8
    return calc_power()


cube = to_power(3)
print(cube(5))

我的代码给我这个错误:

  

TypeError:calc_power()缺少1个必需的位置参数:“ num”

但是,我很确定我确实提出了一个论点:

cube = to_power(3)
    print(cube(5)) # arg = 5

1 个答案:

答案 0 :(得分:2)

您将不返回该函数,仅返回该返回值(由于缺少参数,该值甚至不会进行计算)。摆脱括号:

def to_power(x): # x = 3
    def calc_power(num):
        return num**x
    return calc_power

现在,如果您剩下的话:

cube = to_power(3)
print(cube(5))

您会得到

125