判断类与对象关系
isinstance(obj, cls)
判断对象obj是否是由cls类创建的
#!/usr/bin/env python #-*- coding:utf-8 -*- class Foo(object): pass obj = Foo() print isinstance(obj, Foo) #输出结果:True #如果对象obj是由Foo类创建的,那么就会返回True 否则返回False #!/usr/bin/env python #-*- coding:utf-8 -*- class Foo(object): pass class Boo(object): pass obj = Boo() print isinstance(obj,Foo) #输出结果:False
issubclass(Boo, Foo)
检查Boo类是否是 Foo类的派生类
#!/usr/bin/env python #-*- coding:utf-8 -*- class Foo(object): pass class Boo(Foo): pass print issubclass(Boo,Foo) #同理如果Boo,是Foo的派生类那么返回True
异常处理
一、异常处理的作用
在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!(这里的大黄页通常是写代码是用户访问网页,如果出现错误之后返回的一个黄色的报错页面通常称为:大黄页)
例子:
拿咱们刚开始学的时候遇到的问题来举例:
#!/usr/bin/env python #-*- coding:utf-8 -*- str_input = 'tianshuai' number = int(str_input) print number 报错信息: ''' Traceback (most recent call last): File "C:/Github/homework/tianshuai/boke.py", line 5, in <module> number = int(str_input) ValueError: invalid literal for int() with base 10: 'tianshuai' '''
上面的信息是不是非常的不友好!
用异常处理来做:
try: str_input = 'tianshuai' number = int(str_input) print number except Exception,e: print "