其他相关
1、isinstance(obj,cls)
检查是否obj是类cls的对象
# 针对变量 n = 123
s
= "123" print isinstance(n,int) # True print isinstance(s,int) # False print isinstance(s,str) # False
#
针对类 class Foo: pass
obj
= Foo() print isinstance(obj,Foo) # True
2、issubclass(sub,super)
检查sub类是否是super类的派生类
class
Foo: pass class Fun(Foo): pass print issubclass(Fun,Foo) # True
3、异常处理
1:模式:
try:
# 正常的代码
pass
except Exception,e:
# 异常后显示的内容
pass
e是包含在Exception类中的一个对象,其中包含所有的报错的情况
实例:
while
True: num1 = raw_input(‘num1:‘) num2 = raw_input(‘num2:‘) try: num1 = int(num1) num2 = int(num2) result = num1 +num2 except Exception,e: print "报错信息如下显示:" print e ‘‘‘
打印结果: num1:3 num2:f 报错信息如下显示: invalid literal for int() with base 10: ‘f‘ ‘‘‘
如果对程序的要求没有特殊的异常处理可以直接使用总的Exception,如果单独处理某种错误,可以按照下面的方法操作
try
:
li = [11,22,33,44]
li[110]
except IndexError,e:
print e
这样就只对索引的错误进行异常处理。
2:异常的种类
异常的种类有很多,每个异常专门用于处理某一项异常。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
异常其他结构
try
:
# 主代码块
pass
except KeyError,e:
# 异常时,执行该块
pass
else:
# 主代码块执行完执行该块
pass
finally:
# 无论是否异常,最终执行该块
pass
主动触发异常
try: N = raw_input("请输入1:") if N == 1: print "成功" else: raise Exception(‘我这里出错了。。。‘) except Exception,e: print "显示错误页面。。。。" print e 打印结果: 请输入1:2 显示错误页面。。。。 我这里出错了。。。
自定义触发异常
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
当类Alexerror加上括号执行的时候,是执行类中的构造函数__init__
Exception函数在返回的时候,是将__str__中的字符串返回出来。
如果使用Alexerror来执行的话,就返回Alex Error,在括号中加入内容的话,就返回其中的内容。
4、反射
普通方式实现:
首先在主程序中实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
调用的页面程序
1 2 3 4 5 6 7 8 9 10 |
|
实现结果
1 2 3 4 5 6 |
|
部分反射
1 2 3 4 5 6 7 8 9 10 11 12 |
|
action = 字符串
getattr:去某个容器模块中找函数,字符串函数名,如果有则获取函数。
以字符串的形式执行某一个模块中的函数
反射功能由以下四个内置函数提供:
hasattr getattr setattr delattr 这四个函数分别用于对对象内部执行:检查是否含有某个成员、获取成员、设置成员、删除成员。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|
设计模式
1、单例,顾名思义单个实例。
比如在游戏的场景中,就无法使用单例模式,要不你怎么创建那么多角色。
实际应用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
借助web来实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
简单举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|