鱼C论坛

 找回密码
 立即注册
查看: 517|回复: 2

[已解决]第十一章 类和对象 self是什么的理解

[复制链接]
发表于 2018-8-12 10:55:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
老师,我把例题中的每一行都写了自己的理解,如有不正确,麻烦指正,橙色为疑惑部分

>>> class Ball:#定义一个叫Ball的类
        def setName(self,name):#Ball的类中包含两个函数,第一个函数setName有两个参数分别为self和name;
                self.name = name #给name参数赋值一个变量名 self.name  我不明白为什么变量名self.name中间要有个点(·)或者有的时候也用下划线(_)这是为什么?作用是什么?
        def kick(self):# 第二个函数的只有一个参数self
                print('我叫%s,奥~谁踢我?!'% self.name) #打印self.name,麻烦老师能不能说一下这个类的中文逻辑是什么?要表达什么内容?

>>> a = Ball()  # 创建对象a,
>>> a.setName('飞火流星')  #调用Ball类中setName的方法,并赋值一个参数叫‘飞火流星’
>>> b = Ball()   # 创建对象b,
>>> b.setName('团队之星') #调用Ball类中setName的方法,并赋值一个参数叫‘团队之星’
>>> a.kick() #调用对象a中的kick方法
我叫飞火流星,奥~谁踢我?!
>>> b.kick() #调用对象b中的kick方法
我叫团队之星,奥~谁踢我?!

通过这个例子我还是没有明白,self这个参数到底在起什么作用?另外教材中‘当一个对象的方法被调用的时候,对象会将自身的引用作为第一个参数传给该方法’这句话还是没理解了~
最佳答案
2018-8-12 11:42:46
self是实例化的对象,相当于this,  点表示后边是其子属性或子函数
这个类定义了2个函数,第一个是设置名字
第二个是踢球,只是print出来玩玩
你先学基本语法再看这里吧,函数那边看懂了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-12 11:42:46 | 显示全部楼层    本楼为最佳答案   
self是实例化的对象,相当于this,  点表示后边是其子属性或子函数
这个类定义了2个函数,第一个是设置名字
第二个是踢球,只是print出来玩玩
你先学基本语法再看这里吧,函数那边看懂了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-12 13:08:00 | 显示全部楼层
我的理解是 self就是被赋值的那个变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 13:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表