2013-04-25 24 views
11

मैं पाइथन प्रोग्रामिंग के लिए नौसिखिया हूं और अभी भी लैम्ब्डा के उपयोग को समझने की कोशिश कर रहा हूं। ज्यादा googling मैं लगा कि मैं इस इस काम करता हैटाइपरर: <lambda>() कोई तर्क नहीं लेता है (1 दिया गया)

mtrf = Button(root, text = "OFF",state=DISABLED,command = lambda:b_clicked("mtrf")) 

के रूप में मैं इसे

करने की जरूरत है काम करने के लिए बटन के लिए उपयोग करने की आवश्यकता है, लेकिन बाद कुछ जीयूआई कार्यक्रम पर worrking था जब मैं स्केल के लिए भी ऐसा ही यह

leds = Scale(root,from_=0,to=255, orient=HORIZONTAL,state=DISABLED,variable =num,command =lambda:scale_changed('LED')) 

उत्तर

29

Scale काम नहीं करता है, समारोह एक तर्क के साथ command के रूप में पारित कॉल तो आप हालांकि वें इसका इस्तेमाल करने के (है तुरंत इसे दूर पंक्ति)।

बदलें:

command=lambda: scale_changed('LED') 

को
command=lambda x: scale_changed('LED') 
+12

'_' पारंपरिक रूप के रूप में प्रयोग किया जाता है को बदलें मार्च 'अप्रयुक्त तर्क' के केर: 'कमांड = lambda _: scale_changed (' LED ') ' – monoid

4

यह शायद क्योंकि आदेश एक तर्क है कि शायद आप नहीं चाहते पारित हो जाता है है।

command=lambda x:scale_changed('LED') 
2

को

command=lambda:scale_changed('LED') 

से लैम्ब्डा बदलने का प्रयास करें आप Tkinter documentation से परामर्श करना चाहिए:

Scale widget

command - A procedure to be called every time the slider is moved. This procedure will be passed one argument, the new scale value. If the slider is moved rapidly, you may not get a callback for every possible position, but you'll certainly get a callback when it settles.


Button widget

command - Function or method to be called when the button is clicked.

अपने lambda को

command=lambda new_scale_val: scale_changed('LED') 
संबंधित मुद्दे