这个打印出来的为什么是1

来源:9-6 类变量与实例变量

星期9

2018-02-27

class Student():
name = '1'
age = 0

# 类变量(和类相关联在一起的,以上两个是类变量),实例变量(和对象相关联在一起的,下面两个是实例变量)的区别
def __init__(self,name,age):
name = self.name
age = self.age
print(name)

def do_homework(self):
print('homework')

student = Student(1,2)


http://img.mukewang.com/szimg/5a94c3ca0001492209740606.jpg

写回答

3回答

7七月

2018-03-06

一般不会这么写name=self.name,但是如果你要这么写。这是因为self.name 讲指向类变量name,这个是因为变量有查找顺序,课程里有讲过。然后你把self.name 赋值给name,最后又打印出name,当然是类变量的1.

0
0

lemonlxn

2018-03-01

你在构建函数里面的self写的有问题,你继续再回看教程吧

0
2
lemonlxn
回复
星期9
您好,你这样讲话真的很没礼貌。你这里的问题是把 self.name 类变量的值赋给 name,然后又打印name,不就相当于直接打印类变量self.name的值?
2018-03-08
共2条回复

7七月

2018-02-27

你为什么要这么写?self.name 赋值给另外一个变量?我没太明白这么写的目的是什么。

0
0

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

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

14446 学习 · 4438 问题

查看课程