【发布时间】:2015-02-28 14:01:49
【问题描述】:
我有一个菜鸟问题:
我正在尝试创建一个类“Field”,它继承了 Tkinter 的 Button 类的所有内容,但还包含附加属性“location”和获取该属性的方法。实现之后,我创建了新的“Field”类的实例,并尝试让 Field 的命令调用它的函数来获取它的 location 属性:
from Tkinter import *
class Field(Button):
def __init__(self, location, **k):
Button.__init__(self, **k)
self.location = location
def getLoc(self):
return self.location
root=Tk()
c = Field(2, text="Text", command = lambda: self.getLoc)
c.pack()
root.mainloop()
出现带有按钮的根窗口,但按下后出现以下错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "C:\Users\PC\Desktop\test2.py", line 12, in <lambda>
c = Field(2, text="Text", command = lambda: self.getLoc)
NameError: global name 'self' is not defined
我应该怎么做才能让它看到我希望最近实例化的“字段”成为它应该返回其位置的“自我”?
提前谢谢你
【问题讨论】:
标签: python button tkinter command self