鱼C论坛

 找回密码
 立即注册
查看: 764|回复: 6

Python面向对象的问题

[复制链接]
发表于 2019-4-12 09:33:39 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
有没有哪位大佬能解释下Python中面向对象中的self什么,怎么用啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-12 09:37:23 | 显示全部楼层
详细的解释:百度。通俗点就是这个类,class a()中的self, 就代表class a
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-12 11:39:23 | 显示全部楼层
self指向类的实例,而非类本身
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-12 11:42:46 | 显示全部楼层
943623021 发表于 2019-4-12 11:39
self指向类的实例,而非类本身

class A:
    def B(self):
        print(self)
        print(self.__class__)

t = A()
t.B()
self指向t
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-12 11:59:29 | 显示全部楼层
      可以理解为句柄或操作对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-12 16:02:09 | 显示全部楼层
实例化后的对象   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-13 21:48:58 | 显示全部楼层
Python的self相当于C++d的this指针,
Python的self就是说一个类可以生成无数个对象,
当一个对象方法被调用的时候,
对象会将自己本身当作第一个参数,传给这个self参数。
举个栗子:
  1. class Ball:
  2.     def setname(self, name):
  3.         self.name  =name
  4.     def kick(self):
  5.         print(''我叫%s,给死的,谁踢我...' % self.name)

  6. a = Ball()
  7. a.setname('球A')
  8. b = Ball()
  9. b.setname('球B')
  10. c = Ball()
  11. c.setname('土豆')
  12. a.kick()
  13. 我叫球A给死的,谁踢我...
  14. c.kick()
  15. 我叫土豆给死的,谁踢我...
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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