python - 如何让参数返回他自己的名字?
问题描述
我的代码
for i in list_tasks:
globals()['icon1%s' % i].bind(on_press=lambda x: **print(#here I want to print his name)**
例如globals()['icon1%s' % i]
是“icon1clock”我希望它在印刷机上打印他自己的名字(icon1clock)。
解决方案
棘手的部分是定义一个包装另一个值的 lambda 表达式,而不是一个名称。我不会费心去尝试。编写一个为您创建回调的函数;回调可以是一个变量的闭包。
def make_callback(name):
def _(x):
print(name)
return _
# *Not* icon1clock = ...
icons = {
'clock': ...,
}
for i in list_tasks:
icons[i].bind(on_press=make_callback(i))
推荐阅读
- android - How to change item background color in recyclerview, getting value from Shared Preferencess
- excel - 打开 PDF 并将特定页面另存为新 PDF
- python - 如何在 TF Keras 模型中测量图层执行的时间?
- spring - 我可以看到spring boot创建的配置文件吗?
- typescript - 如何配置 JetBrains 产品以调试需要设置上下文值的 CDK TypeScript 应用程序?
- sql-server - 从 CTE 输出中随机化部分选择
- python - “tensorflow.python.keras.utils.generic_utils”没有属性“populate_dict_with_module_objects”
- javascript - 使用 node.js 处理未处理的承诺拒绝
- javascript - 为什么我在第一个和第二个 console.log() 中得到相同的结果
- reactjs - 为什么我可以嵌套 Styled Components 而不是普通的 React 组件