网站转移动版,富阳做网站,品牌网站如何建设,网站建设流程资讯如何把一个文件#xff0c;拆分成多个具有着独立功能的文件#xff0c;然后通过import的方式#xff0c;来调用这些文件。
这样具有几个好处#xff1a;
1. 可以让项目文件变得更加规范和清晰
2. 可以让项目文件更加容易维护#xff0c;修改某一个功能的时候#xff0…如何把一个文件拆分成多个具有着独立功能的文件然后通过import的方式来调用这些文件。
这样具有几个好处
1. 可以让项目文件变得更加规范和清晰
2. 可以让项目文件更加容易维护修改某一个功能的时候只需要修改一个文件而不需要修改多个文件。
3. 文件变得更容易复用部分通用的文件可以单独拿出来进行其他项目的复用。
机器学习项目的流程
文件的组织
项目核心代码组织 配置文件管理 实验与探索代码 项目产出物管理 通用的拆分起步思路 1.首先按照机器学习的主要工作流程数据处理、训练、评估等将代码分离到不同的.py文件中。这是最基本也是最有价值的一步。
2.然后创建一个utils.py来存放通用的辅助函数。
3.考虑将所有配置参数集中到一个config.py文件中。
4.为你的数据和模型产出物创建专门的顶层目录如data/和models/将它们与你的源代码通常放在src/目录分开。 注意事项 if namemain
常常会看到if __name__ __main__这个写法实际上每个文件都是一个对象对象就会有属性和方法。
如果直接运行这个文件则__name__等于__main__若这个文件被其他模块导入则__name__不等于__main__。
这个写法有如下好处 1. 明确程序起点一个 Python 项目往往由多个模块组成。if __name__ __main__ 可清晰界定程序执行的起始位置。比如一个包含数据处理模块 data_processing.py、模型训练模块 model_training.py 的机器学习项目在 model_training.py 中用 if __name__ __main__ 包裹训练相关的主逻辑代码运行该文件时就知道需要从这里开始执行其他文件都是附属文件让项目结构和执行流程更清晰。大多时候如此
2. 避免执行python遵从模块导入即执行机制当你使用 import xxx 导入一个模块时Python 会执行该模块中的所有顶层代码即不在任何函数或类内部的代码。如果顶层代码中定义了全局变量或执行了某些操作如读取文件、初始化数据库连接这些操作会在导入时立即生效并可能影响整个程序的状态。为了避免执行不必要的代码我们可以使用 if __name__ __main__ 来避免在导入时执行不必要的代码。这样只有当模块被直接运行时即被执行 python xxx.py才会执行顶层代码而导入时则不会执行。这样我们就可以确保在导入模块时不会执行不必要的代码从而提高程序的性能和可维护性。 3. 合理的资源管理if __name__ __main__ 与定义 main 函数结合使用函数内变量在函数执行完这些变量被释放能及时回收内存资源避免内存泄漏保证程序高效运行。
编码格式 规范的py文件首行会有# -*- coding: utf-8 -*-
主要目的是 显式声明文件的编码格式确保 Python 解释器能正确读取和解析文件中的非 ASCII 字符如中文、日文、特殊符号等。也就是说这个是写给解释器看的。 因为在 Python 2.x 时代默认编码是 ASCII不支持直接在代码中写入非 ASCII 字符如中文注释、字符串中的中文否则会报错SyntaxError: Non-UTF-8 code starting with...。但是Python 3.x 默认为 UTF-8 编码理论上可以省略编码声明。但实际开发中为了兼容旧代码、明确文件编码规则或在团队协作中避免因编辑器 / 环境配置不同导致的乱码问题许多开发者仍会保留这一行声明。
ps 1. 编码声明必须出现在文件的前两行通常是首行否则会被忽略。 2. 如果编码格式没问题可能是vscode的编码格式不是utf-8可以尝试修改编码格式。 3. 常见的编码报错是因为字符串编码问题可以尝试显式转化即读取的时候转化为utf-8编码。
非 ASCII 字符的代码如下所示
# -*- coding: utf-8 -*-
msg 你好世界 # 中文字符串
print(msg)很多时候项目中会包含gitattribute文件来确保在不同操作系统和编辑器中文件的编码格式一致。这里我们后面说到git工具在介绍
类型注解 Python 的类型注解是在 Python 3.5 引入的特性用于为变量、函数参数、返回值和类属性等添加类型信息。虽然 Python 仍是动态类型语言但类型注解可以提高代码可读性、可维护性并支持静态类型检查工具如 mypy。
其次在安装python插件的时候附带安装了2个插件 1. 一个是python debugger用于断点调试我们已经介绍了 2. 另一个是pylance用于代码提示和类型检查这个插件会根据你的代码中的类型注解给出相应的提示和检查比如你定义了一个函数参数类型是int那么当你传入一个字符串时它会提示你传入的参数类型不正确。
变量类型注解语法为 变量名: 类型
# 变量的类型注解
name: str Alice
age: int 30
height: float 1.75
is_student: bool False函数类型注解为函数参数和返回值指定类型语法为 def 函数名(参数: 类型) - 返回类型。
def add(a: int, b: int) - int:return a bdef greet(name: str) - None:print(fHello, {name})类属性与方法的类型注解为类的属性和方法添加类型信息。
# 定义一个矩形类
class Rectangle:width: float # 矩形宽度浮点数类属性的类型注解不初始化值height: float # 矩形高度浮点数def __init__(self, width: float, height: float):self.width widthself.height heightdef area(self) - float:# 计算面积宽度 × 高度return self.width * self.height浙大疏锦行