当前位置:   article > 正文

Python-程序结构_python程序结构

python程序结构

模块 Module

定义:

含一系列数据、函数、类的文件,通常以.py结尾。

作用:

让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。

有利于多人合作开发。

导入

导入方式1: 创建变量module01关联该模块

将该模块成员导入到当前作用域中

将该模块所有成员导入到当前作用域中

项目的目录 

  1. """
  2. 模块
  3. 练习:
  4. 将student_info_manager.py分解为4个模块
  5. -- bll.py --> 业务business 逻辑logic 层layer
  6. 存储Controller类
  7. -- usl.py --> 用户user 显示show 层layer
  8. 存储View类
  9. -- model.py --> 存储数据模型Model
  10. -- main.py --> 存储入口代码
  11. """
  12. # 建议设置项目根目录
  13. # -- 在day14文件夹上,右键选择"Mark Directory as"
  14. # -- 在选择"Sources Root"
  15. # 导入方式1: 创建变量module01关联该模块
  16. # 语法:
  17. # import 模块
  18. # 模块.成员
  19. # 适合:面向过程的技术(全局变量、函数)
  20. import module01
  21. module01.func01()
  22. # m01 = module01.MyClass()
  23. # m01.func02()
  24. # 导入方式2: 将该模块成员导入到当前作用域中
  25. # 语法:from 文件名 import 内容
  26. # 适合:面向对象的技术(类)
  27. # from module01 import func01
  28. from module01 import MyClass
  29. # func01()
  30. # m01 = MyClass()
  31. # m01.func02()
  32. # 导入方式3: 将该模块所有成员导入到当前作用域中
  33. # 语法:from 文件名 import *
  34. # 适合:面向对象的技术(类)
  35. from module01 import *
  36. func01()
  37. m01 = MyClass()
  38. m01.func02()

包package

定义:

将模块以文件夹的形式进行分组管理

作用:

让一些相关的模块组织在一起,使逻辑结构更加清晰。

语法:

import 包名.模块名 [as 模块新名]

import 包名.子包名.模块名 [as 模块新名]

from 包名 import 模块名 [as 模块新名]

from 包名.子包名 import 模块名 [as 模块新名]

from 包名.子包名.模块名 import 成员名 [as 属性新名]

# 导入包内的所有子包和模块

from 包名 import *

from 包名.模块名 import *

  1. # # 方法1
  2. # # import 路径.模块名
  3. # import package01.package02.module01 as m
  4. #
  5. # m.func01()
  6. #
  7. # # 方法2
  8. # from 路径.模块名 import 成员
  9. from package01.package02.module01 import func01
  10. func01()
  11. # # 方法3
  12. # # from 路径.模块名 import *
  13. # from package01.package02.module01 import *
  14. #
  15. # func01()
  16. """
  17. 特殊导入方式
  18. 设置包的__init__.py文件
  19. """
  20. # 方式1:import 包
  21. # 设置:import package01.package02.module01
  22. # import package01.package02 as p
  23. #
  24. # p.module01.func01()
  25. # 方式2:from 包 import 包
  26. # 设置:from package01.package02 import module01
  27. # from package01 import package02
  28. #
  29. # package02.module01.func01()
  30. # 方式3:from 包 import *
  31. # 设置:__all__ = ["module01"]
  32. from package01.package02 import *
  33. module01.func01()

 导入模块是否成功的唯一标准:

导入路径 + sys.path = 实际路径

  1. import sys
  2. sys.path.append("/home/tarena/month01/code/day15/my_projcet")
  3. # print(sys.path)
  4. from common import *
  5. class SkillDeployer:
  6. def func02(self):
  7. print("func02执行了")

异常处理Error

异常

 定义:运行时检测到的错误

现象:当异常发生时,程序不会再向下执行,而转到函数的调用语句。

常见的异常类型:

-- 名称异常(NameError):变量未定义。

-- 类型异常(TypeError):不同类型数据进行运算。

-- 索引异常(IndexError):超出索引范围。

-- 属性异常(AttributeError):对象没有对应名称的属性。

-- 键异常(KeyError):没有对应名称的键。

-- 为实现异常(NotImplementedError):尚未实现的方法。

-- 异常基类Exception。

异常处理

核心价值:保证程序按照既定流程原则(就近原则)

语法:

try:

可能触发异常的语句

except 错误类型1 [as 变量1]:

处理语句1

except 错误类型2 [as 变量2]:

处理语句2

except Exception [as 变量3]:

不是以上错误类型的处理语句

else:

未发生异常的语句

finally:

无论是否发生异常的语句

  1. """
  2. 异常处理
  3. 目的:错误状态(向上翻) --> 正常状态(向下走)
  4. 核心价值:保障程序按照既定流程执行
  5. """
  6. def div_apple(apple_count):
  7. person_count = int(input("请输入人数:"))
  8. result = apple_count / person_count
  9. print("每人%d个苹果" % (result))
  10. # 写法1:对症下药(官方建议)
  11. """
  12. # 检测可能出错的代码
  13. try:
  14. div_apple(10)
  15. # 定位错误代码
  16. except ValueError:
  17. print("不能输入非整数类型")
  18. except ZeroDivisionError:
  19. print("不能输入零")
  20. print("后续逻辑")
  21. """
  22. # 写法2:包治百病(常用)
  23. """
  24. # 检测可能出错的代码
  25. try:
  26. div_apple(10)
  27. # 定位全部错误代码
  28. # except Exception:
  29. except:
  30. print("出错喽")
  31. print("后续逻辑")
  32. """
  33. # 写法3:一定执行的逻辑
  34. """
  35. # 检测可能出错的代码
  36. try:
  37. div_
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/826690
推荐阅读
相关标签
  

闽ICP备14008679号