您的位置:首页 > 编程语言 > Python开发

Python-面向对像及其他

2016-06-08 14:34 344 查看

其他相关

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
#

针对类 classFoo: pass
obj

= Foo() print isinstance(obj,Foo) # True

2、issubclass(sub,super)

检查sub类是否是super类的派生类

class

Foo: passclassFun(Foo): passprint 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:异常的种类

异常的种类有很多,每个异常专门用于处理某一项异常。

异常其他结构

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
显示错误页面。。。。
我这里出错了。。。


自定义触发异常

当类Alexerror加上括号执行的时候,是执行类中的构造函数__init__

Exception函数在返回的时候,是将__str__中的字符串返回出来。

如果使用Alexerror来执行的话,就返回Alex Error,在括号中加入内容的话,就返回其中的内容。

4、反射

普通方式实现:

首先在主程序中实现:

调用的页面程序

实现结果

部分反射

action = 字符串

getattr:去某个容器模块中找函数,字符串函数名,如果有则获取函数。

以字符串的形式执行某一个模块中的函数

反射功能由以下四个内置函数提供:

hasattr getattr setattr delattr 这四个函数分别用于对对象内部执行:检查是否含有某个成员、获取成员、设置成员、删除成员。

设计模式

1、单例,顾名思义单个实例。

比如在游戏的场景中,就无法使用单例模式,要不你怎么创建那么多角色。

实际应用:

借助web来实现

简单举例:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: