请稍等 ...
×

采纳答案成功!

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

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

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)


https://img1.sycdn.imooc.com//szimg/5a94c3ca0001492209740606.jpg

正在回答 回答被采纳积分+3

3回答

7七月 2018-03-06 07:47:34

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

0 回复 有任何疑惑可以回复我~
lemonlxn 2018-03-01 11:54:19

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

0 回复 有任何疑惑可以回复我~
  • 提问者 星期9 #1
    问题是为什么name = self.name 这么写,请看清再回答,不懂别装懂
    回复 有任何疑惑可以回复我~ 2018-03-05 20:49:00
  • lemonlxn 回复 提问者 星期9 #2
    您好,你这样讲话真的很没礼貌。你这里的问题是把 self.name 类变量的值赋给 name,然后又打印name,不就相当于直接打印类变量self.name的值?
    回复 有任何疑惑可以回复我~ 2018-03-08 16:37:00
7七月 2018-02-27 12:24:02

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

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