Fork me on GitHub

python异常以及面向对象编程

一、面向对象

需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量:

二、python异常处理

1、try-except异常处理 代码块如下:

try:

    try_code

except NameError,e:

    except_code

finally:

    always run code.

2、with as异常处理

with open('q.txt') as f:

    for line in f.readlines():

        print line

3、python常见异常 (均继承自Exception基类) 3-1、NameError:变量a未定义 3-2、SyntaxError:语法错误,if True(没加:) 3-3、IOError:f = open('1.txt'):文件不存在 3-4、ZeroDivisionError:10/0 3-5、ValueError:a=int('dd') 4、raise语句和assert语句 4-1raise用于主动抛出异常 语法: raise exception,args exception:异常类 args:描述异常的元组 例如 raise NameError, "Not defined" 输出 NameError: Not definied 4-2assert语句 断言语句:用于检测表达式是否为真,如果是假,引发AssertionError错误。 语法: assert expression,args expression:表达式 args:判断条件的描述信息 举例: assert 0,'test assert'或者assert 0==9,'test assert' 输出AssertionError: test assert 5、标准异常和自定义异常 自定义异常必须继承自Exception类,而且只能是主动触发(raise) 举例说明 自定义异常: class FileError(IOerror):   pass 产生自定义异常: raise FlieError, 'file error' try捕获异常的使用:

try:

    raise FileError,'file error'

except FileError,e:

    print e

posted @ 2015-10-22 16:45  ZHK的博客  阅读(168)  评论(0)    收藏  举报