2012-03-18 29 views
0
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) 

我在这里不明白这个变量如何获得加法值。由于初始化总是返回没有它不应该得到加法的值。python return in _init_构造函数

+0

值得注意的是,仅用于访问变量(''giveResult()'')的方法在Python中是不好的做法。查看''property''装饰器/内置。 – 2012-03-18 13:58:11

+0

更值得注意的是,在Python 2.x中,您应该始终继承“object”类的类,或者受到细微的错误影响。 (你从没有继承,这使得它们成为旧式类) – jsbueno 2012-03-18 14:36:35

回答

3

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

result = thistime.giveResult() 

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