跟踪 self.variable
Trace self.variable
我正在尝试追踪一个变量:
def callback(*args):
print "variable changed!"
self.entryVariable = Tkinter.StringVar()
self.entryVariable.trace("w", callback)
这很好用,但我想实际打印出 callback
中的变量:
def callback(self.entryVariable):
print "variable changed!"
print self.entryVariable.get()
self.entryVariable = Tkinter.StringVar()
self.entryVariable.trace("w", callback(self.entryVariable))
但是,我得到
def callback(self.entryVariable):
^
SyntaxError: invalid syntax
您犯了 classic 错误,没有给 trace()
函数一个 function
对象,而是给该函数的 return 值。您可以使用 lambda
,但您根本不必使用任何参数,因此只需使用
self.entryVariable.trace("w", self.callback)
您可以在 class 中的任何位置提及任何 self.xxx
属性,因此您的方法变为:
def callback(self, *args):
print "variable changed!"
print self.entryVariable.get()
我正在尝试追踪一个变量:
def callback(*args):
print "variable changed!"
self.entryVariable = Tkinter.StringVar()
self.entryVariable.trace("w", callback)
这很好用,但我想实际打印出 callback
中的变量:
def callback(self.entryVariable):
print "variable changed!"
print self.entryVariable.get()
self.entryVariable = Tkinter.StringVar()
self.entryVariable.trace("w", callback(self.entryVariable))
但是,我得到
def callback(self.entryVariable):
^
SyntaxError: invalid syntax
您犯了 classic 错误,没有给 trace()
函数一个 function
对象,而是给该函数的 return 值。您可以使用 lambda
,但您根本不必使用任何参数,因此只需使用
self.entryVariable.trace("w", self.callback)
您可以在 class 中的任何位置提及任何 self.xxx
属性,因此您的方法变为:
def callback(self, *args):
print "variable changed!"
print self.entryVariable.get()