Pyhon__学习笔记留痕__函数

📅 2026/7/13 14:18:44 👁️ 阅读次数 📝 编程学习
Pyhon__学习笔记留痕__函数

一、变量作用域

  1. 局部变量与全局变量

函数内部定义的变量为局部变量,仅函数内可访问;函数外部定义的变量是全局变量,全文件可读。

2. global关键字

在函数内部声明,标识后续操作的变量为全局变量,实现函数内修改全局变量。

3. 全局变量使用规范

  1. 开发中尽量减少全局变量,过多会大幅提升代码维护、调试成本;

  2. 优先依靠函数参数、返回值完成数据传递,替代全局变量;

  3. global仅适用于全局状态、配置、计数器等少数场景。

    二、函数五大传参方式

  4. 位置参数

调用函数时,实参顺序必须和形参定义顺序严格对应。

  • 优势:书写简洁;缺点:参数多后可读性差、极易传参出错、维护成本高
  • 适用场景:参数数量≤3个、参数顺序直观清晰的场景
  1. 关键字参数

调用时以 形参名=值 格式传参,参数顺序不受定义限制。

  • 优势:代码可读性强,方便后期维护扩展;缺点:代码书写偏冗长
  • 适用场景:参数数量多、参数含义易混淆的场景
  • 混合传参规则:位置参数与关键字参数混用,位置参数必须写在前面,关键字参数之间无顺序要求
  1. 默认参数

定义函数时直接给形参预设默认值,调用时可省略该参数;若主动传参则覆盖默认值。

  • 语法约束:带默认值的参数必须放在无默认参数的末尾,单函数可设置多个默认参数。
  1. 不定长位置参数 *args

用于参数数量不确定的场景,接收所有位置实参,自动封装为元组存储;args只是行业约定变量名,可自定义命名,仅收集位置参数,不捕获关键字参数。

  1. 不定长关键字参数 **kwargs

接收不定量关键字实参,自动封装为字典存储;

  • 场景区分:*args 处理不确定数量的核心数据;**kwargs 处理可选配置类参数。
  • 组合用法:可同时定义 *args, **kwargs ,兼容任意数量的位置、关键字参数。

三、参数数据类型分类

  1. 普通参数:支持数字、字符串、容器类(列表/元组/集合/字典)等常规数据;
  2. 特殊参数:函数本身可作为参数传入,实现高阶函数逻辑。

四、匿名函数 lambda

  1. 基础定义:无函数名的简易函数,使用lambda表达式声明,仅支持单行表达式逻辑;
  2. 语法特点:无需书写return,表达式执行结果自动作为返回值;可无参、可多参数;
  3. 使用场景:逻辑简单、仅单次调用的函数,常作为高阶函数的入参,简化代码书写;
  4. 取舍建议:复杂多行逻辑不建议使用lambda,可读性会大幅下降。

    递归逻辑

    实例练习