Python在__init__构造函数中返回

时间:2012-03-18 10:39:41

标签: python constructor init

class Adder:

    result = 0

    def __init__( self, number1, number2 ):
        self.result = int( number1 ) + int( number2 )

    def giveResult( self ):
        return str(self.result)

class AdderGui:

    def __init__( self ):
        self.builder = gtk.Builder()
        self.builder.add_from_file("Adder.glade")

    def add(self, widget):
        entry1 = self.builder.get_object ("entry1")
        entry2 = self.builder.get_object ("entry2")
        try:
            thistime = adder( entry1.get_text(), entry2.get_text() )
        except ValueError:
            self.builder.get_object("hboxWarning").show()
            self.builder.get_object("entryResult").set_text("ERROR")
            return 0

    def quit(self, widget):
        sys.exit(0)

我在这里不明白th​​istime变量如何获得加法的价值。由于 init 总是返回no,因此不应该获得添加值。

1 个答案:

答案 0 :(得分:3)

没有。 thistime被分配了Adder个对象。要获得结果,您需要调用其giveResult()方法。例如:

result = thistime.giveResult()

顺便说一下,类名应该按照惯例大写。此外,在result = 0类定义中,Adder似乎没有多大意义。对象变量self.result__init__()中分配。