2016-01-25 123 views
-1

我是python和对象语言的新手。我现在正在使用python学习类。但下面的代码让我困惑。如何在课堂上使用输入?

class math: 
    def __init__(self, a, b): 
     self.a = a 
     self.b = b 
     math.add = self.a+self.b 

    def sum(self): 
     math.sum = self.a+self.b 

s= math(2,1) 
x = math.add 
y = math.sum 

结果看起来不对。 x是3但y不是3.我的问题在哪里?

谢谢

+1

你正在搞乱_everything_了。 – tamasgal

回答

3

我猜你想做的是这个。

class math: 
    def __init__(self, a, b): 
     self.a = a 
     self.b = b 
     self.add = self.a+self.b 

    def sum(self): 
     return self.a+self.b 

s= math(2,1) 
x = s.add 
y = s.sum() 

print(x) 
print(y) 

误差范围为如下

  1. 你没有打电话给你的math实例。由于这些是实例方法,因此它们必须引用实例x = math.add应该是x = s.add

  2. 您创建了一个方法sum但没有把它y = s.sum简单地创建到函数的引用,并且不调用它,而不是你应该使用y = s.sum()

  3. 你的功能sum不返回任何东西,所以分配其返回值的值将产生值None。为了解决这个问题,从总和中返回一个值,即return self.a + self.b

self.add也挺奇怪的,因为它命名为喜欢的一个功能,但它的实际价值,这会不会被别人看你的代码的预期。因为它提供了与sum相同的功能,所以更好的名称可能是全部或删除它。