Python函数与函数式编程详解

需积分: 9 1 下载量 103 浏览量 更新于2024-09-08 收藏 358KB PDF 举报
"sigai-6 Python教程,讲解Python中的函数与函数式编程,由丁宁在SIGAI课程中录制。课程涵盖了函数定义、参数、命名空间与作用域解析等核心概念。" 在Python编程中,函数是组织良好且可重用的代码块,它们允许我们将复杂的任务分解为更小、更易于管理的部分。本节课程主要讨论了以下几个知识点: 1. **认识函数**: 函数是一组执行特定任务的语句,它将代码封装起来,以便在需要时调用。通过`def`关键字定义函数,例如`def function_name(parameters):`。 2. **代码块**: Python的代码块通过缩进来定义,通常使用4个空格而不是制表符。代码块由冒号`:`引导,并以相同的缩进级别结束。它可以包含各种控制结构,如条件语句、循环、函数和类定义等。 3. **函数参数**: - **形参(形式参数)**:在函数定义中声明的参数,它们在函数内部使用。 - **实参(实际参数)**:在调用函数时传递给形参的值。 - **参数传递**:Python采用“传对象引用”而非“传值”或“传引用”。这意味着如果参数是可变对象(如列表或字典),函数内部的修改会影响到原始对象。 4. **位置参数与关键字参数**: - **位置参数**:按照顺序匹配到函数定义中的形参。 - **关键字参数**:通过参数名指定,允许调用者不记住参数顺序,同时可以设置默认值,使函数调用更灵活。 5. **任意数量的参数**: - **星号(*)参数**:用于收集位置参数,形成一个元组。 - **双星号(**)参数:用于收集关键字参数,形成一个字典。 6. **命名空间与作用域**: - **命名空间**:变量的存储区域,每个函数、模块和全局范围都有自己的命名空间。 - **作用域**:变量的可见性范围,如局部作用域(仅在函数内可见)、全局作用域(整个脚本可见)。 - **查看命名空间**:`globals()`返回全局命名空间,`locals()`返回当前作用域的命名空间。 - **作用域规则**:局部变量优先于全局变量,除非使用`global`关键字声明。 - **变量遮盖**:当同名变量在不同作用域中时,局部作用域的变量会遮盖全局作用域的变量。 7. **return语句**: - 可以省略,表示函数无返回值。 - 单独使用,表示函数结束并返回当前点的值。 - 可以返回多个值,通过元组实现。 8. **docstring**: 函数定义首行的三引号字符串,用于记录函数的功能、参数和返回值,方便使用`help()`函数查看。 9. **函数式编程**: 虽然课程没有深入讨论,但函数式编程是Python中的一个重要概念,它强调使用函数作为一等公民,支持高阶函数、闭包和惰性求值等特性。 通过理解和掌握这些基本概念,开发者能够编写更加模块化、可维护的Python代码,特别是在AI领域,这样的编程风格有助于提高代码的效率和可读性。