第八章:Python基础の面向对象(下集)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章:Python基础の面向对象(下集)相关的知识,希望对你有一定的参考价值。
本課主題
- 面向对象的多态
- 面向对象的成员
- 成员修饰符
- 特殊成员
- 面向对象其他应用
- 源码扩展
- 异常处理
- 设计模式与单例模式
面向对象的多态
向对象的成员
普通字段保存在对象,静态字段保存在类里
对于静态字段来说,只要一加载,就会在内存中创建,静态方法是由你来调用的,对象是用来封装数据的,如果要用来封装数据,就创建对象。如果用不着对象就不用创建对象了,因為靜態方法的調用不依賴於任何對象,就可以节省內存空間。静态方法 = Python 的函数。
Python 有三種方法
- 普通方法
- 静态方法,它是用類來調用,是不是转什么就转什么就行
- 类方法,它写的时候,必须传入类参数,它会自己把类传入到这个方法里
面向对象的属性
只伪做了字段的访问形式而已,它只提供了一种关联方式
- 执行程序时会加上括号,e.g. obj.func( ),访问字段会 obj.name,运用属性之后可以在执行方法时不用加上括号,e.g. obj.func,这样设置的话,对象只能获取 (getter功能) 它的返回值而不能修改或者是对这个方法重新赋值,
- 如果想赋值到属性类的话,必需加上一个 method.setter 的装饰器 (setter功能),e.g. @all_page.setter;
- 如果想删除一個屬性值的時候,可以加上一個 method.deleter 的装饰器 (delete功能),e.g. @all_page.deleter。
成员修饰符
特殊成员
__dict__: 获取对象里的数据
__str__:
__getitem__: 如果執行 obj[‘a‘] 者是 obj[1:5],它就會自動去執行 __getitem__方法,根据索引去取值和根据切片去取值,它们返回的类型是不一样的
__setitem__:如果執行 obj[‘a‘]=111,它就會自動去執行 __setitem__方法
__delitem__:如果執行 del obj[‘a‘],它就會自動去執行 __delitem__方法
__call__: 如果執行 obj( ),它就會自動去執行 __call__方法
面向对象其他应用
执行父类的方法,主动执行父类的方法
>>> class C1: ... def f1(self): ... print(‘c1.f1‘) ... >>> class C2(C1): ... def f1(self): ... super(C2,self).f1() ... print(‘c2.f1‘) ... >>> obj=C2() >>> obj.f1() c1.f1 c2.f1
有序字典
源码扩展
异常处理
异常错误列表
IndexError
ValueError
设计模式与单例模式
单例模式,总共有 23 种设计模式
什么是单例模式:一个例子,一个实例,也就是说它只有一个对象,它主要是用来创建单个实例。以下是一个数据库连接池的例子
以上是关于第八章:Python基础の面向对象(下集)的主要内容,如果未能解决你的问题,请参考以下文章