枚举类型
使用枚举类型可以更加直观的表示数值代表的意义
>>> from enum import Enum, unique
>>> @unique # 检测重复
... class color(Enum):
... RED = 1
... GREEN = 2
... BLUE = 3
...
>>> c = color.RED
>>> print(c)
color.RED
>>> print(c.RED)
color.RED
>>>
异常处理
>>> age = -1
>>> while age == -1:
tmp = input('your age:')
try:
age = int(tmp)
except:
print('Value Error')
age = -1
your age:a
Value Error
your age:b
Value Error
your age:c
Value Error
your age:1
按异常类型捕获
>>> try:
... f = open(input('filename:'))
... age = int(input("int:"))
... f.close()
... except ValueError:
... print('int Error')
... except IOError:
... print('open Error')
...
filename:
xx
open Error
>>>
finally处理必须执行的代码
>>> f = None
>>> try:
... f = open(input('filename:'), 'w')
... age = int(input("int:"))
... except ValueError as e:
... print('int Error', e)
... except IOError as e:
... print('open Error', e)
... finally:
... if f:
... f.close()
...
filename:
xxx.xxx
int:
asdf
int Error invalid literal for int() with base 10: 'asdf'
>>>
抛出异常
>>> def div(x, y):
... if y == 0:
... raise ValueError('除数为0')
... else:
... return x / y
...
>>> div(1, 2)
0.5
>>> div(1, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in div
ValueError: 除数为0
抛出的异常可以统一在一个地方进行捕获