python - 函数后面的括号是什么意思
问题描述
我被要求在 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
怎么知道,将这个值放在自己内部并使用它?
解决方案
这意味着您的函数应该返回一个函数:
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
推荐阅读
- python - 类似于列表框的树视图的诅咒选择
- python - python中的分布式读写锁
- c++ - BOOT-INF/lib/*.jar 下的 Spring Boot fat/uber jar 中的 JNI C++ findClass()
- python - Visual Studio 代码 python
- chart.js - chart.js 散点图 - 数组中的数据集数据不显示数据
- properties - 在 Dafny 中表达归纳数据类型的属性
- python - 使用 apply 和 lambda 函数添加新列
- javascript - Node Js - 展平对象数组
- python - 如何使用sqlite3中的python函数逐行更新?
- c - VS Code 中的编译问题。包含路径错误