1. 异常(基础)
【什么是错误?】
错误是指由于逻辑或语法错误等,导致一个程序无法正常执行的问题。
【什么是异常?】
异常时程序出错时标识的一种状态,当异常发生时,程序不会再向下执行,而转去调用次函数的地方,待处理相应的错误并恢复为正常状态。
1.1. try语句(通常2种写法)
try/except/else/finally语句
【语法】
try:
可能触发异常的语句
except 错误类型1 [as 变量1]:
异常处理语句1
except 错误类型2 [as 变量2]:
异常处理语句2
except (错误类型3, 错误类型4, ...) [as 变量3]:
异常处理语句3
...
except:
异常处理语句other
else:
未发生异常语句
finally: #一定会执行
最终语句
Python中常见错误类型
ZeroDivisionError | 除(或取模)零 |
---|---|
StopIteration | 迭代器没有更多的值 |
OverflowError | 数值运算超出最大限制 |
IOError | 输入/输出操作失败 |
ImportError | 导入模块错误 |
GeneratorError | 生成器发生异常来通知退出 |
IndexError | 序列中没有此索引 |
FloatingPointError | 浮点计算错误 |
IndentationError | 缩进错误 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
AssertonError | 断言语句失败 |
NameError | 未声明/初始化对象 |
AttributeError | 对象中没有这个属性 |
KeyboardInterrupt | 用户中断执行(通常是输入Ctrl+c) |
更多见:>>>help(builtins)
1.2. raise语句
【作用】
生成一个错误,让程序进入异常状态
【语法】
raise 异常类型
或
raise 异常对象
2.运算符重载
【什么是运算符重载】
用自定义的规则实现实例之间的运算符操作或函数操作
【作用】
1. 让实例像数学表达式一样的进行运算操作。
2. 让实例像内建对象一样进行内建函数操作。
3. 让程序简洁易读。
2.1. 对象转字符串函数重载
repr(obj)
str(obj)
【重载方法】
repr() 函数的重载方法:
def repr(self):
…
str() 函数的重载方法:
def str(self):
…
注:如果对象没有__str__方法,则用repr(obj)函数的结果代替
2.2. 算数运算符的重载
def xxx(self, other): #self代表二元运算符左侧,other代表右侧
…
注:二元运算符的重载方式的参数列表中只能有两个参数
【重载说明】
运算符重载方法的参数已经有固定的含义,不可改变原有意义
除__call__方法外,其他重载方法的参数个数不可改变
2.3. 反向算数运算符重载
2.4. 一元运算符的重载
2.5. 比较运算符的重载
2.6. 位运算符重载
2.7. 内建函数的重载
2.8. 数值转换函数重载
2.9. in/not in运算符重载
2.10. 索引和切片运算符的重载
2.11. 函数调用(模拟)重载
2.12. 属性管理重载
注:以上四个方法当属性不存在时,需要产生AttributeError异常错误
说明:
__getattr__是在找不到对应属性时才调用,当没有属性时需要产生AttributeError错误
__getattribute__在任何时候都会被调用,当没有属性时需要产生AttributeError错误