首页 > 解决方案 > 函数后面的括号是什么意思

问题描述

我被要求在 Python 3 中编写一个函数: 编写一个名为 的函数general_poly,例如,计算结果general_poly([1, 2, 3, 4])(10)1234因为1*10^3 + 2*10^2 + 3*10^1 + 4*10^0

现在我不明白第二个括号 ,是什么(10)意思。

我的函数general_poly怎么知道,将这个值放在自己内部并使用它?

标签: pythonpython-3.xfunction

解决方案


这意味着您的函数应该返回一个函数:

def multiplier(times):
    def inner(num):
         return num * times
    return inner

result = multiplier(2)(3)
print(result)
# 6

times_four = multiplier(4)
print(times_four(3))
# 12

这可能是也可能不是矫枉过正,但如果您需要保存状态,您甚至可以使用一个类并实现__call__

class multiplier:
    def __init__(self, times):
        self.times = times
    def __call__(self, num):
        return num * self.times

print(multiplier(2)(3))
# 6

推荐阅读