W
AI-Wiki
SOURCE

Python学习笔记 摘要

文档概览

本笔记内容分为5个核心模块,覆盖从环境搭建到基础开发的全流程实操内容,所有代码示例均可直接复用:

  1. Python安装流程
  2. 虚拟环境激活规则
  3. 基础语法要点
  4. 类定义规范
  5. 常用库介绍

关键事实

  1. 环境规则:Python多版本共存原理为系统环境变量Path中优先级最高的Python.exe路径决定默认调用版本,同一设备可安装多个Python版本甚至相同版本,每个虚拟环境需绑定指定Python版本;conda与venv两类虚拟环境差异明确:conda虚拟环境会复用anaconda/pkgs目录下的Python安装包与依赖库,相同版本不会重复下载,适合多项目依赖差异大的场景;venv为Python原生虚拟环境工具,创建的环境轻量隔离可随项目迁移,适合需要便携性的项目场景。
  2. 语法覆盖:包含Python关键字参数(kwargs)使用、字符串格式化、Python装饰器、类型注释、类方法定义等核心语法的实操代码示例。
  3. 常用库:包含Pydantic核心功能与基础使用方法说明,覆盖字段验证、元数据配置等核心开发场景。

重要细节

环境搭建与激活

  • 安装:从Python官网下载对应版本安装包,系统默认Python版本由环境变量Path中排序最靠前的Python.exe所在路径决定。
  • 虚拟环境创建与激活:
    • conda环境:创建时相同Python版本与依赖自动复用公共存储,激活命令为conda activate 环境名
    • venv环境:在项目目录下执行python -m venv 环境名创建,激活需进入虚拟环境目录后执行\.\Scripts\Activate.ps1

核心语法实操

关键字参数kwargs

  • 函数定义时**kwargs会将传入的任意数量关键字参数收集为字典,示例代码:
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
print_info(name="Alice", age=30, city="New York")
  • 函数调用时**可将字典解包为关键字参数传入,示例:
def greet(name, message):
    print(f"{message}, {name}!")
person = {"name": "Bob", "message": "Hello"}
greet(**person)

字符串格式化

三种格式化方式对比如下:

格式化方式占位符形式示例(填充question变量)
str.format(){}{变量名}prompt_style = "问题:{} 回答:".format(question)
f-string(最常用){变量名}prompt_style = f"问题:{question} 回答:"
%格式化(老式)%s(字符串)、%d(数字)等prompt_style = "问题:%s 回答:" % question

装饰器

  • 装饰器以@符号为标记,可将额外功能注入到下方函数/方法中,无需修改原有代码逻辑
  • 常用装饰器示例:
    • @field_validator("input_variables")Pydantic专用字段验证装饰器,自动将绑定字段的值传入下方方法的value参数完成校验
    • @property:将方法伪装为属性,调用方式从llm._identifying_params()简化为llm._identifying_params
    • @classmethod:标记类方法,首个参数为cls代表类本身,无需实例化即可调用
    • @staticmethod:标记静态方法,无需接收selfcls参数,与类/实例无绑定关系

类型注释

  • 用于声明变量、函数参数、返回值的预期类型,运行时不强制校验,可提升代码可读性,支持IDE自动补全
  • 示例:def add(a: int, b: int) -> int表示函数接收两个int类型参数,返回值为int类型;Optional[int]等价于Union[int, None],表示参数可为int或None

类定义规范

标准类定义模板如下:

class 类名(父类, 可选):
    # 构造方法,实例化时自动执行
    def __init__(self, 参数1, 参数2, ...):
        self.属性1 = 参数1
        self.属性2 = 参数2
    # 实例方法,需通过实例调用,首个参数self代表当前实例
    def 方法名(self, 参数1: 类型) -> 返回类型:
        # 业务逻辑
  • super()方法用于调用父类的同名方法
  • 变量/方法前加下划线表示为内部使用属性,不建议外部直接调用

常用库Pydantic

  • 核心定位是数据验证与数据建模工具,自动完成格式校验、类型转换,降低数据异常排查成本
  • FieldPydantic核心字段配置工具,用于给字段设置默认值、别名、验证规则、描述等元数据,示例:model_folder_path: Optional[str] = Field(default=None, alias="model_path")

相关条目

PythonPython虚拟环境Python关键字参数(kwargs)Python装饰器PydanticFastAPI