鱼C论坛

 找回密码
 立即注册
查看: 1330|回复: 13

[已解决]关于类的一些问题

[复制链接]
发表于 2017-11-19 22:50:08 | 显示全部楼层 |阅读模式

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

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

x
类中self这个第一形参是做什么的?书上讲的的我怎么都理解不了,对象实例又是什么意思啊?
最佳答案
2017-11-20 07:21:52
self用来指明函数中变量的归属,是属于当前对象本身的,相当于c++中的this指针,你可以百度一下this指针,就能大概理解它做什么的

类相当于结构图,实例化对象相当于根据这个结构图搭建的房子,举个例子,书是一个类,那么《高等数学》就是书这个类的一个实例化对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-11-19 23:01:57 | 显示全部楼层
感觉很抽象,很难理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 06:50:53 | 显示全部楼层
self是这个类的实例对象
也就是说如果有实例对象 x = y()
那么x就是y的这个self参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 07:21:52 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
self用来指明函数中变量的归属,是属于当前对象本身的,相当于c++中的this指针,你可以百度一下this指针,就能大概理解它做什么的

类相当于结构图,实例化对象相当于根据这个结构图搭建的房子,举个例子,书是一个类,那么《高等数学》就是书这个类的一个实例化对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 10:51:44 | 显示全部楼层
通俗一点 理解为 类自身好了

再通俗一点 self中的所有东西 都整个Class中的任何地方都可以使用(方法有self这个参数的)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 11:02:25 From FishC Mobile | 显示全部楼层
本帖最后由 阿撩 于 2017-11-20 11:03 编辑

我的理解是,因为类可以实例成多个实例化对象,那程序如何识别每个实例化对象的呢,就是依靠这个self参数。类就是一个大的概括,例如鱼是一个类,鱼还有金鱼,鲤鱼,甲鱼。而金鱼,鲤鱼,甲鱼都是很具体的了,就是我们说的实例化对象。self这个参数就是去识别是哪个鱼的。我是这么理解的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 11:09:56 | 显示全部楼层
self 就是实例占位符,代表把构造成实例后的实际对象。
  1. >>> class 类():
  2.         def 实例方法(实例占位符, 形参1):
  3.                 print('这是个在实例中调用的函数。')
  4.                 实例占位符.属性 = 形参1

  5.                
  6. >>> 实际中例子 = 类()
  7. >>> 实参 = 9
  8. >>> 实际中例子.实例方法(实参)
  9. 这是个在实例中调用的函数。
  10. >>> 实际中例子.属性
  11. 9
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-20 15:21:31 From FishC Mobile | 显示全部楼层
BngThea 发表于 2017-11-20 07:21
self用来指明函数中变量的归属,是属于当前对象本身的,相当于c++中的this指针,你可以百度一下this指针, ...

是不是也可以理解成self是类中准备和实例访问接头的,实例调用类中的属性时,self作为实例的接头人和领路人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 15:22:47 | 显示全部楼层
pythonwei 发表于 2017-11-20 15:21
是不是也可以理解成self是类中准备和实例访问接头的,实例调用类中的属性时,self作为实例的接头人和领路 ...

对,可以这么理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-20 15:38:25 From FishC Mobile | 显示全部楼层
谢谢,想通这个点憋了我三天,我太笨了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-20 17:52:14 | 显示全部楼层
SixPy 发表于 2017-11-20 11:09
self 就是实例占位符,代表把类构造成实例后的实际对象。

谢谢,弄明白了很多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-20 19:23:34 | 显示全部楼层
SixPy 发表于 2017-11-20 11:09
self 就是实例占位符,代表把类构造成实例后的实际对象。

为什么你单打一行 实参=9 啊,这行的意义是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-20 19:34:23 | 显示全部楼层
pythonwei 发表于 2017-11-20 19:23
为什么你单打一行 实参=9 啊,这行的意义是什么?

中文都看不懂吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-20 19:44:06 | 显示全部楼层
SixPy 发表于 2017-11-20 19:34
中文都看不懂吗?

哦    误会了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 16:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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