第八章:Python基础の面向对象(下集)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章:Python基础の面向对象(下集)相关的知识,希望对你有一定的参考价值。

本課主題

  • 面向对象的多态
  • 面向对象的成员
  • 成员修饰符
  • 特殊成员
  • 面向对象其他应用
  • 源码扩展
  • 异常处理
  • 设计模式与单例模式 

面向对象的多态

 

向对象的成员

普通字段保存在对象,静态字段保存在类里

对于静态字段来说,只要一加载,就会在内存中创建,静态方法是由你来调用的,对象是用来封装数据的,如果要用来封装数据,就创建对象。如果用不着对象就不用创建对象了,因為靜態方法的調用不依賴於任何對象,就可以节省內存空間。静态方法 = Python 的函数。

Python 有三種方法

  • 普通方法
  • 静态方法,它是用類來調用,是不是转什么就转什么就行
  • 类方法,它写的时候,必须传入类参数,它会自己把类传入到这个方法里

 

面向对象的属性

只伪做了字段的访问形式而已,它只提供了一种关联方式

  1. 执行程序时会加上括号,e.g. obj.func( ),访问字段会 obj.name,运用属性之后可以在执行方法时不用加上括号,e.g. obj.func,这样设置的话,对象只能获取 (getter功能) 它的返回值而不能修改或者是对这个方法重新赋值,
  2. 如果想赋值到属性类的话,必需加上一个 method.setter 的装饰器 (setter功能),e.g. @all_page.setter;
  3. 如果想删除一個屬性值的時候,可以加上一個 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
View Code

 

 

有序字典

 

 

源码扩展

 

 

异常处理

异常错误列表

IndexError

ValueError

 

 

 

 

设计模式与单例模式

单例模式,总共有 23 种设计模式

什么是单例模式:一个例子,一个实例,也就是说它只有一个对象,它主要是用来创建单个实例。以下是一个数据库连接池的例子

技术分享

 

 

以上是关于第八章:Python基础の面向对象(下集)的主要内容,如果未能解决你的问题,请参考以下文章

使用java实现面向对象 第八章

python基础学习笔记——Python基础教程(第2版 修订版)第八章(异常)

第八章 面向对象方法学

java面向对象第八章

java面向对象第八章

使用Java实现面向对象编程——第八章 File IO