赞
踩
含一系列数据、函数、类的文件,通常以.py结尾。
让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。
有利于多人合作开发。
导入方式1: 创建变量module01关联该模块
将该模块成员导入到当前作用域中
将该模块所有成员导入到当前作用域中
项目的目录
- """
- 模块
- 练习:
- 将student_info_manager.py分解为4个模块
- -- bll.py --> 业务business 逻辑logic 层layer
- 存储Controller类
- -- usl.py --> 用户user 显示show 层layer
- 存储View类
- -- model.py --> 存储数据模型Model
- -- main.py --> 存储入口代码
- """
- # 建议设置项目根目录
- # -- 在day14文件夹上,右键选择"Mark Directory as"
- # -- 在选择"Sources Root"
-
- # 导入方式1: 创建变量module01关联该模块
- # 语法:
- # import 模块
- # 模块.成员
- # 适合:面向过程的技术(全局变量、函数)
-
- import module01
-
- module01.func01()
-
- # m01 = module01.MyClass()
- # m01.func02()
-
-
- # 导入方式2: 将该模块成员导入到当前作用域中
- # 语法:from 文件名 import 内容
- # 适合:面向对象的技术(类)
- # from module01 import func01
- from module01 import MyClass
-
- # func01()
-
- # m01 = MyClass()
- # m01.func02()
-
- # 导入方式3: 将该模块所有成员导入到当前作用域中
- # 语法:from 文件名 import *
- # 适合:面向对象的技术(类)
- from module01 import *
-
- func01()
-
- m01 = MyClass()
- m01.func02()

将模块以文件夹的形式进行分组管理
让一些相关的模块组织在一起,使逻辑结构更加清晰。
import 包名.模块名 [as 模块新名]
import 包名.子包名.模块名 [as 模块新名]
from 包名 import 模块名 [as 模块新名]
from 包名.子包名 import 模块名 [as 模块新名]
from 包名.子包名.模块名 import 成员名 [as 属性新名]
# 导入包内的所有子包和模块
from 包名 import *
from 包名.模块名 import *
- # # 方法1
- # # import 路径.模块名
- # import package01.package02.module01 as m
- #
- # m.func01()
- #
- # # 方法2
- # from 路径.模块名 import 成员
- from package01.package02.module01 import func01
-
- func01()
-
- # # 方法3
- # # from 路径.模块名 import *
- # from package01.package02.module01 import *
- #
- # func01()
-
-
- """
- 特殊导入方式
- 设置包的__init__.py文件
- """
- # 方式1:import 包
- # 设置:import package01.package02.module01
- # import package01.package02 as p
- #
- # p.module01.func01()
-
- # 方式2:from 包 import 包
- # 设置:from package01.package02 import module01
- # from package01 import package02
- #
- # package02.module01.func01()
-
- # 方式3:from 包 import *
- # 设置:__all__ = ["module01"]
- from package01.package02 import *
-
- module01.func01()

导入模块是否成功的唯一标准:
导入路径 + sys.path = 实际路径
- import sys
-
- sys.path.append("/home/tarena/month01/code/day15/my_projcet")
- # print(sys.path)
-
-
- from common import *
-
- class SkillDeployer:
- def func02(self):
- print("func02执行了")
定义:运行时检测到的错误
现象:当异常发生时,程序不会再向下执行,而转到函数的调用语句。
常见的异常类型:
-- 名称异常(NameError):变量未定义。
-- 类型异常(TypeError):不同类型数据进行运算。
-- 索引异常(IndexError):超出索引范围。
-- 属性异常(AttributeError):对象没有对应名称的属性。
-- 键异常(KeyError):没有对应名称的键。
-- 为实现异常(NotImplementedError):尚未实现的方法。
-- 异常基类Exception。
核心价值:保证程序按照既定流程原则(就近原则)
try:
可能触发异常的语句
except 错误类型1 [as 变量1]:
处理语句1
except 错误类型2 [as 变量2]:
处理语句2
except Exception [as 变量3]:
不是以上错误类型的处理语句
else:
未发生异常的语句
finally:
无论是否发生异常的语句
- """
- 异常处理
- 目的:错误状态(向上翻) --> 正常状态(向下走)
- 核心价值:保障程序按照既定流程执行
- """
-
-
- def div_apple(apple_count):
- person_count = int(input("请输入人数:"))
- result = apple_count / person_count
- print("每人%d个苹果" % (result))
-
-
- # 写法1:对症下药(官方建议)
- """
- # 检测可能出错的代码
- try:
- div_apple(10)
- # 定位错误代码
- except ValueError:
- print("不能输入非整数类型")
- except ZeroDivisionError:
- print("不能输入零")
- print("后续逻辑")
- """
-
- # 写法2:包治百病(常用)
- """
- # 检测可能出错的代码
- try:
- div_apple(10)
- # 定位全部错误代码
- # except Exception:
- except:
- print("出错喽")
- print("后续逻辑")
- """
-
- # 写法3:一定执行的逻辑
- """
- # 检测可能出错的代码
- try:
- div_

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。