我知道这是个无足轻重的问题,但我想弄清楚原因。”self.update_计数“”从“create_widget”方法调用时不需要括号。我一直在找,但找不到原因。在
请帮忙。在
# Click Counter
# Demonstrates binding an event with an event handler
from Tkinter import *
class Skeleton(Frame):
""" GUI application which counts button clicks. """
def __init__(self, master):
""" Initialize the frame. """
Frame.__init__(self, master)
self.grid()
self.bttn_clicks = 0 # the number of button clicks
self.create_widget()
def create_widget(self):
""" Create button which displays number of clicks. """
self.bttn = Button(self)
self.bttn["text"] = "Total Clicks: 0"
# the command option invokes the method update_count() on click
self.bttn["command"] = self.update_count
self.bttn.grid()
def update_count(self):
""" Increase click count and display new total. """
self.bttn_clicks += 1
self.bttn["text"] = "Total Clicks: "+ str(self.bttn_clicks)
# main root = Tk() root.title("Click Counter") root.geometry("200x50")
app = Skeleton(root)
root.mainloop()
是对方法的调用,所以
^{pr2}$将方法的结果存储在
self.bttn
中。但是没有parens,方法本身就存储在
self.bttn
中。在Python中,方法和函数是可以传递、存储在变量中等的对象作为一个简单的例子,考虑以下程序:
这不是函数调用,而是字典中的引用存储:
最有可能的是,按钮对象具有在特定交互时调用此方法的能力。在
它不是从该方法调用的。它使用了对函数的引用,当单击该函数时按钮将调用该函数。您可以将其视为函数名,它是对该函数中代码的引用;要调用该函数,需要应用()运算符。在
相关问题 更多 >
编程相关推荐