鱼C论坛

 找回密码
 立即注册
查看: 2700|回复: 1

[学习笔记] 第36-40节学习笔记——对象和类

[复制链接]
发表于 2020-2-9 20:08:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wxyj3496 于 2020-2-9 20:08 编辑

1 类,包含属性和方法,属性是变量,方法是函数。类的关键字是class,类名首字母一般大写

2 定义类,相当于画图纸、模具。类对象,相当于按照图纸生产一个产品。
3 类里面的self,相当于类对象的编号,我理解,当定义一个类对象时,对象名就代入self
4 魔法方法——构造函数__init__()
   python里有一些魔法方法,使用双下划线包围。
  其中__init__()叫构造方法,在定义类时,使用这个构造函数,在对象被创建时,自动调用,可以在实例化对象时传入参数。如下第1张图,定义一个对象后,需要调用方法传入参数,否则无法执行。如下第2张图,若使用__init__方法,直接在定义对象时,就可以传入参数。

截图_2020-02-09_11-15-20.png

截图_2020-02-09_11-21-30.png
5 python里没有公有和私有。任何方法和属性都可以通过‘.’进行访问。为了实现类似私有变量的特性,python内部采用了一种name mangling(名字改编)的方法实现,在变量或函数前面加上双下划线‘__'的方法实现。顾名思义,它是通过更改名字的方式实现的,它将变量或函数前面再加上下划线和类名,更改名字,实现私有。如图
截图_2020-02-09_11-46-54.png
6 如下图,类里的属性可以通过'类名.属性参数= 值’的方式统一更改,但是,当定义的对象更改属性后,'类名.属性参数= 值’这种方式就无效了。对象的属性将类的属性替代了。

截图_2020-02-09_12-00-11.png
7 继承
  a.子类和父类定义相同的方法和属性,子类会自动覆盖父类对应的方法和属性
  b.因为子类会覆盖父类,因此在使用__init()__时要调用未绑定的父类,即在__init()__执行“父类名.__init__(self)”,如下图,Fish是父类,Shark是子类
截图_2020-02-09_16-26-19.png
c.上面过还可用super函数替代父类名,这样不需要管父类名,直接调用即可,如下图。supper函数能够帮我们自动找到基类的方法
截图_2020-02-09_16-24-02.png
d.python支持多重继承,即一个子类可以继承多个父类,如下,但为避免混乱,不建议这样
截图_2020-02-09_16-38-45.png
e.有种方式叫做组合,如下所示,在__init__()初始化类,然后使用
截图_2020-02-09_20-03-39.png




本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2020-2-12 10:20:53 | 显示全部楼层
追更打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 23:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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