zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    C# Tostring()方法
    sql order by和case THEN 并用
    Lazarus Reading XML- with TXMLDocument and TXPathVariable
    Lazarus Reading XML- with TXMLDocument and TDOMNode
    Lazarus Coolbar and AnchroDocking
    Windows live writer 2012 测试
    组态王数据字典区块定义
    组态软件状态指示定义
    西门子Step7中DB块结构导出
    Delphi 不用标题栏移动窗体
  • 原文地址:https://www.cnblogs.com/likailiche/p/4474644.html
Copyright © 2011-2022 走看看