guozhenyu411 发表于 2020-7-21 09:44:44

类和对象问题求助

class Myclass():
    a = 10
    b = 5
    def method(self):
      self.c = self.a + self.b
      print(self.c)

Myclass.method(1)



类中有属性 a 和 b ,我想在类方法里面让他们相加,上面的写法出错了,应该怎么写呢?

heidern0612 发表于 2020-7-21 09:47:20

把self都去掉,也不用定义函数,直接相加。

Twilight6 发表于 2020-7-21 09:47:38


把你method 括号里的 1 去掉就好 , 然后在实例化类那加个括号

class Myclass():
    a = 10
    b = 5
    def method(self):
      self.c = self.a + self.b
      print(self.c)

Myclass().method()

zltzlt 发表于 2020-7-21 09:48:51

    a = 10
    b = 5
    def method(self):
      self.c = self.a + self.b
      print(self.c)

Myclass().method()

guozhenyu411 发表于 2020-7-21 09:51:05

换成Myclass().method(),确实可以,但是这是为什么呢?能说一下吗

Twilight6 发表于 2020-7-21 09:54:54

guozhenyu411 发表于 2020-7-21 09:51
换成Myclass().method(),确实可以,但是这是为什么呢?能说一下吗


1 不属于 Myclass 类的,而属于 int 类的,所以你传入 1 这个不属于 Myclass 的对象

而传入后 self.a 类似等价于 int.a ,而 int 类中 没有 a、b、c 属性导致报错
页: [1]
查看完整版本: 类和对象问题求助