Python之路【第五篇】:面向对象和相关
2016-12-26 22:01
471 查看
Python之路【第五篇】:面向对象及相关
面向对象基础
基础内容介绍详见一下两篇博文:
其他相关
一、isinstance(obj, cls)
检查是否obj是否是类 cls 的对象
二、issubclass(sub, super)
检查sub类是否是 super 类的派生类
三、异常处理
1、异常基础
在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!
需求:将用户输入的两个数字相加
dic = ["wupeiqi", 'alex'] try: dic[10] except IndexError, e: print e
dic = {'k1':'v1'} try: dic['k20'] except KeyError, e: print e
s1 = 'hello' try: int(s1) except ValueError, e: print e
对于上述实例,异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。
所以,写程序时需要考虑到try代码块中可能出现的任意异常,可以这样写:
万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常,即:
接下来你可能要问了,既然有这个万能异常,其他异常是不是就可以忽略了!
答:当然不是,对于特殊处理或提醒的异常需要先定义,最后定义Exception来确保程序正常运行。
3、异常其他结构
4、主动触发异常
5、自定义异常
6、断言
四、反射
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
详细解析:
当我们要访问一个对象的成员时,应该是这样操作:
#!/usr/bin/env python # -*- coding:utf-8 -*- def dev(): return 'dev'
设计模式
一、单例模式
单例,顾名思义单个实例。
[quote]学习单例之前,首先来回顾下面向对象的内容:
python的面向对象由两个非常重要的两个“东西”组成:类、实例
面向对象场景一:
如:创建三个游戏人物,分别是:
- 苍井井,女,18,初始战斗力1000
- 东尼木木,男,20,初始战斗力1800
- 波多多,女,19,初始战斗力2500
#!/usr/bin/env python #coding:utf-8 from wsgiref.simple_server import make_server # ########### 单例类定义 ########### class DbHelper(object): __instance = None def __init__(self): self.hostname = '1.1.1.1' self.port = 3306 self.password = 'pwd' self.username = 'root' @staticmethod def singleton(): if DbHelper.__instance: return DbHelper.__instance else: DbHelper.__instance = DbHelper() return DbHelper.__instance def fetch(self): # 连接数据库 # 拼接sql语句 # 操作 pass def create(self): # 连接数据库 # 拼接sql语句 # 操作 pass def remove(self): # 连接数据库 # 拼接sql语句 # 操作 pass def modify(self): # 连接数据库 # 拼接sql语句 # 操作 pass class Handler(object): def index(self): obj = DbHelper.singleton() print id(single) obj.create() return 'index' def news(self): return 'news' def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) url = environ['PATH_INFO'] temp = url.split('/')[1] obj = Handler() is_exist = hasattr(obj, temp) if is_exist: func = getattr(obj, temp) ret = func() return ret else: return '404 not found' if __name__ == '__main__': httpd = make_server('', 8001, RunServer) print "Serving HTTP on port 8001..." httpd.serve_forever()
总结:单利模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!!
相关文章推荐
- Python之路【第五篇】:面向对象及相关
- Python之路【第五篇】:面向对象及相关
- Python之路,Day6 - 面向对象学习
- python 自动化之路 day 08 面向对象进阶
- python——面向对象相关
- python学习之路-8 面向对象之进阶
- python学习笔记六之面向对象相关下(基础篇)
- Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】
- 转:Python之路,Day6 - 面向对象学习
- python 自动化之路 day 07 面向对象基础
- python——面向对象相关
- Python面向对象相关
- 第五篇:python高级之面向对象高级
- python 自动化之路 day 面向对象基础
- python学习之路-7 模块configparser/xml/shutil/subprocess以及面向对象初级入门
- python之路 面向对象基础 XML
- 《简明 Python 教程》笔记-----面向对象及系统相关
- python(二):函数以及面向对象相关
- python——面向对象相关
- 我的Python第五篇 面向对象