类和对象问题求助
class Myclass():a = 10
b = 5
def method(self):
self.c = self.a + self.b
print(self.c)
Myclass.method(1)
类中有属性 a 和 b ,我想在类方法里面让他们相加,上面的写法出错了,应该怎么写呢? 把self都去掉,也不用定义函数,直接相加。
把你method 括号里的 1 去掉就好 , 然后在实例化类那加个括号
class Myclass():
a = 10
b = 5
def method(self):
self.c = self.a + self.b
print(self.c)
Myclass().method() a = 10
b = 5
def method(self):
self.c = self.a + self.b
print(self.c)
Myclass().method() 换成Myclass().method(),确实可以,但是这是为什么呢?能说一下吗 guozhenyu411 发表于 2020-7-21 09:51
换成Myclass().method(),确实可以,但是这是为什么呢?能说一下吗
1 不属于 Myclass 类的,而属于 int 类的,所以你传入 1 这个不属于 Myclass 的对象
而传入后 self.a 类似等价于 int.a ,而 int 类中 没有 a、b、c 属性导致报错
页:
[1]