[toc]###模块####Python程序架构Python源代码文件:*.py一个py文件是一个模块(module) 多个模块可以组成一个包(package)####第三方工具包:####创建packet包创建的每一个packet包中会自带一个_init_.py模块,而且这个模块在import这个包时,会自动加载出现####模块导入方式packet1下的module1代码:
i = 1def func():print("func1")# 这里在导入模块时会自动导入# 不想被自动导入的话,可以将代码放入main方法中if __name__ == \'__main__\':print("module会自动导入")func()
实现代码:
from packet1 import module1# 取别名,防止出现模块重名from packet1 import module1 as m1# 直接导入模块中的方法和变量from packet1.module1 import i, func# 直接导入import packet1.module1 as mm1print(module1.i)module1.func()
###异常处理####六种典型异常1.除零错误(ZeroDivisionError):除数为02.名称错误(NameError):变量使用前未进行申明或者初始化3.类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果 对数据类型的操作不当,就会产生类型错误4.数值错误(ValueError):在输入类型正确的情况下,具体输入值错误5.索引错误(IndexError):超出序列长度的索引操作6.属性错误(AttributeError):方法或者属性不适用该对象####异常处理
try:print(10 / 0)print("上面异常发生,这不会执行")except ZeroDivisionError as e:print(e)print("发生除零异常")except NameError as e:print(e)print("NameError异常")else:print("没有异常")finally:print("不管发生什么都会执行")division by zero发生除零异常不管发生什么都会执行
####自定义异常
# 自定义异常class AlienError(Exception):def __init__(self):super(AlienError, self).__init__("error")age = int(input("请输入年龄"))try:if age < 0:raise AlienErrorelse:print("age is %d" % age)except AlienError as e:print(e)请输入年龄-1error