为了账号安全,请及时绑定邮箱和手机立即绑定

self.name问题

__ini__(self,name,gender): self.name=name 这个不太懂意思,为什么设定self.name=name,然后就可以输出名字了,是系统自动将bob=name?

正在回答

4 回答

self即你需要实例化的对象,self.name是这个需要实例化的对象的name,是个属性. 而__init__()函数的参数列表里的name是你穿进去的参数。__init__()参数列表里的name 其实也可以换成别的,你这样写哈:__init__(self, sname,sgender): self.name=sname   self.gender=sgender 也是可以的。明白这两个name的区别了么?self.name=name的含义是,你传一个name参数进去,将self的name(即self.name)初始化。只不过程序员在编程的时候,喜欢将你穿进去的参数和self的属性写的一样。

2 回复 有任何疑惑可以回复我~
#1

慕移动6447889 提问者

非常感谢!
2017-10-19 回复 有任何疑惑可以回复我~
#2

慕用4328389

self.gender = sgender 这一步是不是打错了,是不是应该是self.sgender = gender
2017-11-17 回复 有任何疑惑可以回复我~

class Person(object):

    def __init__(self, n, s):

        self.name = n

        self.score = s


p = Person('Bob', 59)


print p.name

print p.score

这样也是可以的。

0 回复 有任何疑惑可以回复我~

self即自身,传参数的时候不传进去,self.name意思就是自身的名字,然后调用的时候f(‘Bob’,'男')这时候实参Bob会当成name赋值给self.name。我是这样理解的

0 回复 有任何疑惑可以回复我~

init方法会形参接收name和gender,通过 self.name =name 把形参name 的值给self.name

我是这么理解的,不知道对不对哦


0 回复 有任何疑惑可以回复我~
#1

1小马哥1

形参是什么? 有实参吗?
2018-09-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

self.name问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信