python - 在括号后将参数传递给函数
问题描述
我在用 Python 理解这段代码时遇到问题
x = layers.Flatten()(last_output)
既然Flatten是一个函数,那么函数如何从写在函数调用括号外的last_output获取数据。不记得在 Java 中看到过这种代码。
谢谢并恭祝安康
解决方案
Flatten() 是类实例化(您可能很清楚),第二个使用该参数调用实例。为此,该类必须__call__
定义一个函数。
例子:
class Sum:
def __call__(self, a, b, c):
return a + b + c
s = Sum()
print(s(3, 4, 5))
print(Sum()(3,4,5))
使用返回另一个带参数的函数的函数也可以获得相同的行为:
def Sum2():
def Sum3(a, b, c):
return a + b + c
return Sum3
s2 = Sum2()
print(s2(3, 4, 5))
print(Sum2()(3, 4, 5))
推荐阅读
- bootstrap-4 - 如何在 SASS/SCSS 中使用 @use 导入和自定义引导程序
- google-coral - 如何将环境传感器板上的通用按钮与开发板一起使用
- java - 如何使用我自己的自定义令牌系统保护我的 Java Spring Boot API?
- python - 使用 matplotlib 自动调整手动刻度数
- database - 谷歌数据库损坏:使用 AdminDirectory.Members.remove(groupEmail, memberEmail)
- php - wkhtmltopdf 正在通过终端工作,但不是通过 PHP
- php - 将第一个引导卡(项目)设置为活动
- java - 项目未将数据从 Java Web 应用程序插入数据库
- python - 如何在 Python 中的类级别上运行异步任务?
- robotframework - 使用机器人框架跳过弹出窗口不会跳过它