[問題] 傳遞參數問題

看板Python作者 (PF)時間10年前 (2015/12/20 12:25), 10年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/2 (看更多)
各位大大們好 最近在研究Tkinter寫視窗程式,遇到一個問題 比如我今天創一個Button def a(): print 'Hello' b = Button(root, text='click', command=a) 問題就在這個command=a 通常a這個function不能帶參數 有辦法寫一個a是可以傳參數進去的嗎 比如 def a(arg1, arg2): print arg1, arg2 不知道要改的地方是在Button那邊還是說在a那邊 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.5.102 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1450585512.A.47D.html

12/20 12:37, , 1F
假如是lambda function能嗎? 可以的話就可以帶入變
12/20 12:37, 1F

12/20 12:37, , 2F
數了
12/20 12:37, 2F
from Tkinter import * root = Tk() def a(arg): print arg for i in range(10): b = Button(root,text=str(i), command=lambda:a(i)) b.pack() root.mainloop() 改了下程式碼,是可以傳進參數了,但是印出來每個值都是9是為什麼呢? ※ 編輯: IAMPF (111.248.5.102), 12/20/2015 12:55:44

12/20 16:15, , 3F
改成 lambda i=i:a(i)
12/20 16:15, 3F

12/20 16:16, , 4F
12/20 16:16, 4F

12/20 16:22, , 5F
可以了耶!感謝!
12/20 16:22, 5F
文章代碼(AID): #1MTYseHz (Python)
討論串 (同標題文章)
文章代碼(AID): #1MTYseHz (Python)