On Monday, November 30, 2015 at 11:44:44 AM UTC-5, fl wrote: > Hi, > > I come across the following code snippet. > > > > > > for i in range(10): > def callback(): > print "clicked button", i > UI.Button("button %s" % i, callback) > > > > > The content inside parenthesis in last line is strange to me. > > "button %s" % i, callback > > > That is, the writing looks like recognized as three items when I try with a > class definition (it can run with this): > > class buibutton(): > print 'sd' > def __nonzero__(self): > return False > > def Button(str, ii, callbackk): > > return > > > Could you explain it to me? > > The link is here: > > http://effbot.org/zone/default-values.htm > > Thanks,
Thanks for the replies. Now, I have the following code: class buibutton(): print 'sd' def __nonzero__(self): return False def Button(self, ii, callbackk): callbackk() return UI=buibutton() for i in range(10): def callback(): print "clicked button", i UI.Button("button %s" % i, callback) To my surprise, the output is not the original link expected. i.e. it is the same with binding to the current values: for i in range(10): def callback(i=i): I have the output for both: %run "C:/Users/CCS6_1_Tiva_C/Python_prj0/uibutton1.py" sd clicked button 0 clicked button 1 clicked button 2 clicked button 3 clicked button 4 clicked button 5 clicked button 6 clicked button 7 clicked button 8 clicked button 9 %run "C:\Users\CCS6_1_Tiva_C\Python_prj0\uibutton0.py" sd clicked button 0 clicked button 1 clicked button 2 clicked button 3 clicked button 4 clicked button 5 clicked button 6 clicked button 7 clicked button 8 clicked button 9 I don't know why it does not have the not expected format output: sd clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 clicked button 9 Thanks, -- https://mail.python.org/mailman/listinfo/python-list