Discuss / Python / 我的例子解答了下面的争论.....

我的例子解答了下面的争论.....

Topic source

基础不牢,地动山摇 汽水兄是完全正确的 牢记list是可变类型就好 self.count在初始化的时候是和Student.count是指向同一个地址的,但是int是不可变类型,所以+1后self.count就指向新的地址了,父类的count就始终为0, 而如果是我count1这种情况,我用了list,就验证了指向始终没变,self.count1和Student.count1指向一直相同

class Student(object): count = 0 count1 = [0] def init(self, name): self.name = name Student.count += 1 self.count +=1 Student.count1[0] += 1 self.count1[0] += 1

测试:

if Student.count != 0: print('测试失败!') else: bart = Student('Bart') if Student.count != 1: print('测试失败!') else: lisa = Student('Bart') if Student.count != 2: print('测试失败!') else: print('Students:', Student.count) print('测试通过!') a=Student('a') b=Student('b') print(Student.count,Student.count1) 结果: Students: 2 测试通过! 4 [8]

新建了一个python交流学习,资源分享群,二维码链接在hiyagg.com,欢迎大神,小白进群交流学习,讨论课后习题


  • 1

Reply