首页 > 代码库 > 第八章:Python基础の面向对象(下集)
第八章: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.f1c2.f1
有序字典
源码扩展
异常处理
异常错误列表
IndexError
ValueError
设计模式与单例模式
单例模式,总共有 23 种设计模式
什么是单例模式:一个例子,一个实例,也就是说它只有一个对象,它主要是用来创建单个实例。以下是一个数据库连接池的例子
第八章:Python基础の面向对象(下集)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。