self:
1. 只是一个参数.
2. 在对象使用方法的时候, 当前对象会作为第一个参数的实参传入
3.self 相当于语言中的代词, 表示当前对象本身(其他语言中也有使用 this)
4.self 的作用连接整个对象的所有信息. 桥梁的作用!
5.self 不是关键字, 只是一个参数变量名而已, 可以使用其他单词代替(禁止代替)
6. 方法的分类(暂时):
方法中具有接受对象的参数 (self) 这个方法, 叫做非绑定类的方法
方法中没有接受对象的参数 (self) 这个方法, 叫做绑定类的方法
self 的操作实例
- #self 的操作实例
- #声明一个丛浩的类
- class CongHao:
- #成员属性 ---------------------------------
- name = '丛浩'
- sex = '女'
- age = 38
- color = 'yellow'
- height = '180cm'
- weight = '180 斤'
- house = '180'
- #成员方法 -----------------------------
- #聊天
- def talk(self):
- print('对象的方法中打印',self,id(self))
- print('我的名字是'+ self.name)# 此处需要使用对象的属性来输出名字, 性别年龄等
- print('我的性别是:'+ self.sex)# 此处需要使用对象的属性来输出名字, 性别年龄等
- print('我的年龄是:' + str(self.age))# 此处需要使用对象的属性来输出名字, 性别年龄等
- #唱歌
- def sing(self):
- print('你存在于我深深的脑海里~')
- #洗澡
- def wash(self):
- #洗澡的时候唱歌(调用自己的唱歌功能)
- self.sing()
- print('沐浴露和小香皂, 水温干刚好~')
- #吃饭
- def eat(zhen):# 非绑定类的方法
- print('我的体重是'+zhen.weight)
- print('我最喜欢吃烤羊腿~')
- #self 设计为接受次数的参数
- def cry(self): #绑定类的方法
- print('我哭了'+self+'次')
- #没有 self 参数的方法
- def smoking():
- print('饭后一支烟, 赛过活神仙! 吸烟有害健康.')
- #实例化一个对象(做出一个丛浩对象)
- ch = CongHao()
- print('打印实例化的对象',ch,id(ch))# 打印实例化的对象
- #输出结果: 打印实例化的对象 <__main__.CongHao object at 0x0000022F7CA4C240> 2402977890880
- #修改对象信息
- ch.name = '丛好'
- print(ch.__dict__)
- #输出结果:{'name': '丛好'}
- #使用对象
- #调用聊天功能
- ch.talk()
- '''
- 输出结果:
- 对象的方法中打印 <__main__.CongHao object at 0x000001F37E4AC240> 2145307509312
- 我的名字是丛好
- 我的性别是: 女
- 我的年龄是: 38
- '''
- #再次实例化一个对象(再做一个丛浩对象)
- hnr = CongHao()
- #调用聊天功能
- hnr.talk()
- '''
- 输出结果:
- 对象的方法中打印 <__main__.CongHao object at 0x000001B1D654B2B0> 1863316714160
- 我的名字是丛浩
- 我的性别是: 女
- 我的年龄是: 38
- '''
- #实例化对象
- ch = CongHao()
- #调用洗澡方法
- ch.wash()
- '''
- 输出结果:
- 你存在于我深深的脑海里~
- 沐浴露和小香皂, 水温干刚好~
- '''
- #测试使用其他单词单体 self 参数
- ch = CongHao()
- #调用吃饭方法
- ch.eat()
- '''
- 输出结果:
- 我的体重是 180 斤
- 我最喜欢吃烤羊腿~
- '''
- #没有 self 参数的方法的使用
- #ch = CongHao()
- #ch.smoking()# 无法通过对象调用没有接受对象参数的方法
- #CongHao.smoking()# 通过类可以访问没有接受对象参数的方法
来源: http://www.bubuko.com/infodetail-3055816.html