Возврат Python в конструкторе _init_ - PullRequest
0 голосов
/ 18 марта 2012
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)

что я не понимаю здесь, как thistime переменная получает значение сложения.Так как init всегда не возвращает ничего, он не должен получить значение сложения.

1 Ответ

3 голосов
/ 18 марта 2012

Это не так. thistime присвоен объект Adder. Чтобы получить результат, вам нужно вызвать его метод giveResult(). Например:

result = thistime.giveResult()

Кстати, имена классов должны быть прописными. Кроме того, result = 0 не имеет особого смысла в определении класса Adder. Переменная объекта self.result назначается в __init__().

...