如何从一种方法访问变量到另一种方法?

时间:2013-12-30 20:09:05

标签: python python-2.7 pygtk

    def check_answer(total,current):
        if user_entry == books:
            current += 1
            total += 1
            currentscore = current


   def __init__(self):
       ...
       self.user_entry = Gtk.Entry()

我想知道如何从user_entry访问__init__并在check_answer中查看,而不会收到此错误。 NameError: global name 'user_entry' is not defined如果重要,这是一个GUI。另外,每当我点击currentscore时,如何更改sumbit的Gui。

submit = Gtk.Button("submit")
submit.connect("clicked",self.check_answer)

1 个答案:

答案 0 :(得分:2)

您可以在self上访问它,就像在__init__中的实例上设置它一样:

if self.user_entry.get_text() == books:

通过调用Gtk.Entry()方法从get_text()对象中获取文本。

请注意,您的check_answer方法需要使用self参数才能生效,并且必须接受原始对象作为参数:

def check_answer(self, button):
    if self.user_entry.get_text() == books:
        current += 1
        total += 1
        currentscore = current

如果您需要传递一些额外的参数,则需要将这些参数传递给submit.connect()

submit.connect("clicked", self.check_answer, total, current)

怀疑 total以及currentcurrentscore也是您班级的属性。

或许对Python tutorial on classes的另一种解读会有所帮助?