Python在_init_构造函数中返回

Python在_init_构造函数中返回,python,constructor,init,Python,Constructor,Init,我不明白的是,这个时间变量是如何得到加法的值的。因为init总是返回none,所以它不应该得到加法的值。它没有这次分配了一个加法器对象。要获得结果,需要调用其giveResult()方法。例如: class Adder: result = 0 def __init__( self, number1, number2 ): self.result = int( number1 ) + int( number2 ) def giveResult( sel

我不明白的是,这个时间变量是如何得到加法的值的。因为init总是返回none,所以它不应该得到加法的值。

它没有<代码>这次分配了一个
加法器
对象。要获得结果,需要调用其
giveResult()
方法。例如:

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)

顺便说一下,按照惯例,类名应该大写。另外,
result=0
Adder
类定义中似乎没有多大意义。对象变量
self.result
\uuuu init\uuuu()
中赋值,但它不赋值<代码>这次分配了一个
加法器
对象。要获得结果,需要调用其
giveResult()
方法。例如:

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)

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

中赋值的,值得注意的是,仅设计用于访问变量的方法(
giveResult()
)在Python中是不好的做法。查看
属性
decorator/builtin。更值得注意的是,在Python2.x中,您应该始终从“object”继承类,否则会出现细微错误。(您是从零继承的,这使它们成为老式类)值得注意的是,仅设计用于访问变量的方法(
giveResult()
)在Python中是不好的做法。查看
属性
decorator/builtin。更值得注意的是,在Python2.x中,您应该始终从“object”继承类,否则会出现细微错误。(您从零继承,这使它们成为旧式类)