请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师 ,你好。

# 关于实例方法引用类变量,能否通过 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

3回答

慕粉4192974 2018-06-09 19:23:01

谈谈我的看法: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)


1 回复 有任何疑惑可以回复我~
  • 赞!谢谢了,
    回复 有任何疑惑可以回复我~ 2018-08-26 10:56:13
hsbzzhz 2019-10-26 10:16:49

哈哈看到课程的时候有了同样的疑问,为什么要家__class__. 

0 回复 有任何疑惑可以回复我~
SakuraGaara 2018-06-29 13:23:23
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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信