码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-09-24 16:16:17      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

本課主題

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

面向对象的多态

 

向对象的成员

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

对于静态字段来说,只要一加载,就会在内存中创建,静态方法是由你来调用的,对象是用来封装数据的,如果要用来封装数据,就创建对象。如果用不着对象就不用创建对象了,因為靜態方法的調用不依賴於任何對象,就可以节省內存空間。静态方法 = 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基础の面向对象(下集)

标签:

原文地址:http://www.cnblogs.com/jcchoiling/p/5891151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!