av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

python中def定義的函數加括號和不加括號的區別?

瀏覽:162日期:2022-06-28 17:23:42

問題描述

程序如下:

import tkinter as tkwindow = tk.Tk()window.title('我的程序')window.geometry(’400x300’)var = tk.StringVar()lable = tk.Label(window,textvariable = var,font = ((’微軟雅黑’),12))lable.pack()on_hit = Truedef run(): global on_hit if on_hit == True:on_hit = Falsevar.set(’you hit me’) else:on_hit = Truevar.set(’’)button = tk.Button(window,text = ’hit’,font = ((’微軟雅黑’),12),command = run)button.pack()window.mainloop()

這個程序的效果是 有一個按鈕,按一下,就出現you hit me 再按一下就消失,如此循環為什么button寫成button = tk.Button(window,text = ’生成題目和答案’,font = ((’微軟雅黑’),12),command = run()),函數調用時加了括號,再按按鈕,就一直是you hit me ,上面的lable里的內容不再變化了?

問題解答

回答1:

button = tk.Button(window,text = ’hit’,font = ((’微軟雅黑’),12),command = run)

這句,只是將run這個函數本身讓button保存下來,在button被點擊后會自動調用(相當于點擊后才運行run())。如果改成

button = tk.Button(window,text = ’hit’,font = ((’微軟雅黑’),12),command = run())

解釋器會在看到這句的時候立即調用一次run(),然后把調用的返回值讓button保存下來,現在button被點擊后調用的就是這個返回值(這個例子下就是None)。

回答2:

command有兩種方式調用:b = Button(... command = button)b = Button(... command = lambda: button(’hey’))

你想要用()調用的話可以用lambda寫:button = tk.Button(window,text = ’生成題目和答案’,font = ((’微軟雅黑’),12),command =lambda:run())

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 99热这里都是精品 | 午夜免费观看体验区 | 久久综合一区二区三区 | 免费小视频在线观看 | 一级免费毛片 | 日韩精品一区二区三区免费视频 | 奇色影视 | 亚洲精品99 | 精品欧美在线观看 | 国产超碰人人爽人人做人人爱 | 午夜专区 | 成人片免费看 | 欧美日韩国产精品一区 | 国产在线精品一区二区 | 国产一区二区精品在线观看 | 国产91久久久久久久免费 | 一级黄色夫妻生活 | 国产精品视频一区二区三区四区国 | 欧美极品一区二区 | 亚洲欧洲精品成人久久奇米网 | 中文字幕一区二区三区四区五区 | 一区中文字幕 | 视频一区在线观看 | 亚洲天堂成人在线视频 | 天天操操| 免费在线观看黄色av | 91精品国产91久久久久久吃药 | 欧美不卡 | 亚洲欧美中文日韩在线v日本 | 91精品国产综合久久婷婷香蕉 | 国产精品视频免费播放 | 久久久久亚洲 | 久草网免费| 亚洲三区在线观看 | 中文字幕亚洲视频 | 国产自产21区 | 剑来高清在线观看 | 成人在线免费网站 | 日韩aⅴ视频 | 北条麻妃一区二区三区在线观看 | 久久精品免费 |