Python 学习笔记 - 面向对象(其他)
2017-04-06 00:00
246 查看
这是面向对象的最后一个部分。
首先看两个函数。
1.isinstance(obj, cls)
检查是否obj是否是类 cls 的对象
2.issubclass(sub, super)
检查sub类是否是 super 类的派生类
3.super
默认情况下,当子类和父类有同名的方法时候,子类的对象调用这个方法是调用的子类的方法。super可以强制调用父类的方法。
比如说
这种方式使得我们可以灵活地扩展现有的类,增加新的功能,而不需要去修改现有的代码。相对应的,如果使用装饰器的话 我们需要去修改原有的代码。
比如,通过super的方式自定义一个有序的字典,基本思路是把key放在一个列表里面,因为列表是有序的,因此我们取值的时候通过列表取到key,然后再通过key取到对应的value,最后重新拼接一下输出
&nbs
3ff0
p;
登录乐搏学院官网http://www.learnbo.com/
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “麻婆豆腐” 博客,谢绝转载!
首先看两个函数。
1.isinstance(obj, cls)
检查是否obj是否是类 cls 的对象
2.issubclass(sub, super)
检查sub类是否是 super 类的派生类
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Bar: pass class Foo(Bar): pass obj = Foo() # obj,Bar(obj类型和obj类型的父类)的实例 ret = isinstance (obj, Bar) (ret) ret = issubclass (Bar,Foo) (ret) - - - - - - - - - - - - - - - - - - True False |
默认情况下,当子类和父类有同名的方法时候,子类的对象调用这个方法是调用的子类的方法。super可以强制调用父类的方法。
比如说
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class C1: def f1( self ): ( 'c1.f1' ) return 123 class C2(C1): def f1( self ): # 主动执行父类的f1方法 ret = super (C2, self ).f1() ( 'c2.f1' ) return ret obj = C2() m = obj.f1() (m) - - - - - - - - - - - c1.f1 c2.f1 123 |
比如,通过super的方式自定义一个有序的字典,基本思路是把key放在一个列表里面,因为列表是有序的,因此我们取值的时候通过列表取到key,然后再通过key取到对应的value,最后重新拼接一下输出
&nbs
3ff0
p;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class MyDict( dict ): def __init__( self ): self .li = [] super (MyDict, self ).__init__() def __setitem__( self , key, value): self .li.append(key) super (MyDict, self ).__setitem__(key,value) def __str__( self ): temp_list = [] for key in self .li: value = self .get(key) temp_list.append( "'%s':%s" % (key,value,)) temp_str = "{" + "," .join(temp_list) + "}" return temp_str # obj = MyDict() obj[ 'k1' ] = 123 obj[ 'k2' ] = 456 (obj) |
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “麻婆豆腐” 博客,谢绝转载!
相关文章推荐
- python 条件,循环和其他语句的学习笔记
- [Python入门及进阶笔记00]-写在前面(目录/书籍/学习路线/其他)
- python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍
- Python学习笔记(五)条件,循环和其他语句(上)
- python基础教程学习笔记---(5)条件、循环和其他语句
- Python学习笔记整理(七)Python中的元组和文件及其他
- Python学习笔记-第五章 条件、循环和其他语句(下)
- 【Python 学习手册笔记】元组、文件及其他
- python 学习笔记 四 条件, 循环以及其他
- [Python入门及进阶笔记00]-写在前面(目录/书籍/学习路线/其他)
- Python学习笔记(七):元组、文件及其他类型
- Python3.3 学习笔记4 - 函数 - 内置和其他一些函数
- Python学习笔记:条件、循环和其他语句
- Python学习笔记十一:面向对象
- Python学习笔记之面向对象
- <<Python基础教程>>学习笔记 | 第05章 | 条件、循环和其他语句
- python学习笔记之四:条件,循环和其他语句
- python学习笔记-Day06-Day07(面向对象)
- Python学习笔记五(面向对象-类-方法-属性)
- python学习笔记-(8)初识python面向对象