Python Tkinter entry widget get未定义,未更新到我的主功能,

Python Tkinter entry widget get未定义,未更新到我的主功能,,python,class,object,user-interface,tkinter,Python,Class,Object,User Interface,Tkinter,我正在遵循一些不同的指南,通过编写一个获取股票价格的小应用程序来重新学习Tkinter。我所面临的问题是从我的entry小部件变量调用.get()方法。我看到了一些其他建议,将所有创建的小部件放在一个函数中,然后在init方法中调用该函数,但是我得到了相同的错误,即使在输入变量前面使用self参数也是如此。我知道我在函数之间传递数据的方式有问题,但我不能对此掉以轻心。这是代码,很抱歉出现了文字墙: class MyApp: def __init__(self, parent): se

我正在遵循一些不同的指南,通过编写一个获取股票价格的小应用程序来重新学习Tkinter。我所面临的问题是从我的entry小部件变量调用.get()方法。我看到了一些其他建议,将所有创建的小部件放在一个函数中,然后在init方法中调用该函数,但是我得到了相同的错误,即使在输入变量前面使用self参数也是如此。我知道我在函数之间传递数据的方式有问题,但我不能对此掉以轻心。这是代码,很抱歉出现了文字墙:

class MyApp:
  def __init__(self, parent):
    self.myParent = parent
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()
    self.createWidgets()

    button1 = Button(self.myContainer1, command = self.button1Click)
    button1.configure(text = "get quote")
    button1.pack()

  def createWidgets(self):
    root.title("Stock App")

    self.symbol = Entry(self.myContainer1)
    self.symbol.pack()
    self.symbol.focus_set()

  def button1Click(self):
    stock = symbol.get()
    print stock
我甚至把它简化为最简单的形式,只是让button1Click调用回调函数-

    def button1Click(self):
        print callback()

def callback():
    print symbol.get()
这将返回完全相同的错误: NameError:未定义全局名称“symbol”

它被摧毁得太早了吗?我该如何解决这个问题

我已经为tkinter引用了多个文档,并且看到了一些很好的修复,但是没有一个是可扩展的,或者说,嗯,无法看到它们与我在一个对象中使用tkinter的关系


提前感谢您的帮助。

您缺少了
self。
要回拨:

def callback():
    print self.symbol.get()
def callback():
    print self.symbol.get()

相反。

您缺少
self。
进行回调:

def callback():
    print self.symbol.get()
def callback():
    print self.symbol.get()

相反。

据我所知,在您的按钮单击方法中,您需要添加self,如下所示:


据我所知,在button1Click方法中,您需要添加self,如下所示: