老师 ,你好。

来源: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)


1
1
何林轩
赞!谢谢了,
2018-08-26
共1条回复

hsbzzhz

2019-10-26

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

0
0

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

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程