栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中为什么在声明时执行Button参数“ command”?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中为什么在声明时执行Button参数“ command”?

考虑以下代码:

b = Button(admin, text='as', command=button('hey'))

它的功能与此完全相同:

result = button('hey')b = button(admin, text='as', command=result)

command
选项引用了一个函数,这是你需要向其传递函数名称的一种奇特的方式。要传递引用,你必须仅使用名称,而不使用括号或参数。例如:

b = Button(... command = button)

如果要传递诸如“her”之类的参数,则必须使用一些额外的代码:

  • 你可以创建一个无需你的参数即可调用的中间函数,然后再调用你的
    button
    函数,
  • 你可以
    lambda
    用来创建所谓的匿名函数。在各种方面,它都是一个函数,但没有名称。当你调用
    lambda
    命令时,它返回对创建的函数的引用,这意味着它可以用作command按钮选项的值。
  • 你可以使用
    functools.partial

    对我来说,这
    lambda
    是最简单的,因为它不需要像
    functools.partial
    这样的任何其他导入,尽管有些人认为这
    functools.partial
    更容易理解。

要创建一个button使用参数调用你的函数的lambda函数,你可以执行以下操作:

lambda: button('hey')

你最终得到的功能在功能上等同于:

def some_name():    button('hey')

如前所述,lambda返回对该无名函数的引用。由于参考是该command选项所期望的,因此你可以lambda直接在按钮的创建中使用它:

b = Button(... command = lambda: button('hey'))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367171.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号