如何在课堂上使用输入?

时间:2016-01-25 10:30:22

标签: python class

我是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 个答案:

答案 0 :(得分: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值。要解决这个问题,请从sum return self.a + self.b返回一个值。

  4. self.add也很奇怪,因为它的命名就像一个函数,但它实际上是一个值,其他人看不到你的代码就不会这样。一个更好的名称可能是全部或删除它,因为它提供与sum相同的功能。