老师 ,你好。
来源:9-10 类方法
慕勒3157497
2018-06-09
# 关于实例方法引用类变量,能否通过 self.ClassArg += value 的方式,而不是 self.__class__.ClassArg += value
class Student():
# 类变量 数据成员
sum = 1
def __init__(self, name, age):
#实例变量 实例方法
self.name = name
self.age = age
self.__class__.sum += 1
# 这样的方式,不知道是否可以使用 self.sum += 1
3回答
-
慕粉4192974
2018-06-09
谈谈我的看法:self.sum += 1调用语法上不会报错,同时调用的也是类变量,
但是self.sum += 1累加的结果不会作用到类本身(不会改变类变量的值)
而self.__class__.sum += 1 累加的结果会改变类变量本身的值
代码:
class People():
sum = 0
def __init__(self,name):
self.name = name
def print_sum(self):
self.sum += 1
print(self.sum)
print(self.__class__.sum)
people1 = People('鸡小萌')
people1.print_sum()
print(People.sum)
112018-08-26 -
hsbzzhz
2019-10-26
哈哈看到课程的时候有了同样的疑问,为什么要家__class__.
00 -
SakuraGaara
2018-06-29
class Student(): name='sakura' age=23 sum=0 def __init__(self, name, age): self.name = name self.age = age print(self.name) print(name) print(id(self.sum)) print(id(self.__class__.sum))
self.sum就是self.__class__.sum,可以用id函数来验证
其实。self可以理解为当前构造函数的上一级,就是Student
00
相似问题