鱼C论坛

 找回密码
 立即注册
查看: 1676|回复: 0

[技术交流] 《零基础入门学习Python》37 类和对象-面向对象

[复制链接]
发表于 2017-9-24 23:38:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Gabber 于 2017-9-24 23:38 编辑

面向对象

self
类是图纸,类实例化后的对象是可住人的房子,一张图纸可设计出多个房子,self相当于每个房子的门牌号。
对象的方法被调用时,先将自身作为第一个参数传给self,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.setName('Gabber')
  7. >>> a.kick()
  8. 我叫Gabber,该死的,谁踢我..
复制代码



Python的魔法方法(被'__'包围)
__init__(self)    #构造方法
实例化对象后,该方法在对象创建时自动调用
  1. class Ball:
  2.         def __init__(self,name):
  3.                 self.name = name
  4.         def kick(self):
  5.                 print("我叫%s,该死的,谁踢我..." %self.name)               
  6. >>> b = Ball('土豆')
  7. >>> b.kick()
  8. 我叫土豆,该死的,谁踢我...
复制代码


公有私有
使用了name mangling技术(名字改编、名字重整)
Python中定义私有变量只需要在变量名或函数名前加上"__"两个下划线,那么这个变量或者函数就会为私有了。
  1. >>> class Person:
  2.         __name = '小甲鱼
  3. >>> class Person:
  4.         __name = '小甲鱼'
  5.         def getName(self):   # 修改内部方法访问私有变量
  6.                 return self.__name       
  7. >>> p = Person()
  8. >>> p.getName()
  9. '小甲鱼'
  10. >>> p._Person__name    # 通过 _类名__变量名 的方式访问变量
  11. '小甲鱼'
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 15:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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