python - python嵌套函数,缺少1个必需的位置参数
问题描述
我从一开始就学习python。刚开始学习嵌套函数。这些天我得到了一些很好的代码,如下所示:
def w(m , g):
return m * g
def weight(g):
def cal_mg(m):
return m * g
return cal_mg
w = weight(10)
G = w(100)
G2 = w(50)
print(G)
它给了我“1000”,我对此没有任何问题。当我开始学习这个时,我写道:
def w(m, g):
return m*g
def weight(g):
def cal_mg(m):
return m*g
return cal_mg
w_1=weight(10)
G=w(100)
print(G)
我得到“TypeError:w() 缺少 1 个必需的位置参数:'g'”。我觉得我在输入完全相同的代码。为什么它一直在询问另一个论点“g”。
任何人都可以帮助我吗?谢谢
解决方案
这是因为在第一个示例中,您同时填充了两个位置参数。那是在第 7 行中,当您将权重函数分配给 w 时,在第 8 行中,当您将 G 分配给 w 时,位置参数为 100。所以它返回 10*100。而在第二个代码中,您只需将 w_1 分配给具有位置参数 10 的权重函数,python 将其解释为用于占位符 m 并且缺少 g 的参数。因此你得到了错误。
推荐阅读
- node.js - Vue安装但-v和create不起作用
- python - 使用子进程从 python 运行 tcpdump bash x 分钟
- regex - 正则表达式没有选择新行
- java - 未定义步骤参考 InteliJ + Cucumber for Java + Maven 项目
- php - 使用 PHP 安全配置检查器可写的关键 sendmail
- excel - VBA EXCEL:TypeOf 不能与 If 一起正常工作
- firebase - 只有用户可以在 firebase 中删除自己的数据
- java - 带有 Postgres 的 Spring JPA - 从开始重置 ID 生成
- android - 如何通过改造将 JsonObject 和请求正文列表发送到 wcf Web 服务?
- python - 一列中少数选定行的总和