| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python基础-Day06 函数(要点) -> 正文阅读 |
|
[Python知识库]Python基础-Day06 函数(要点) |
目录 1. 函数语法def 函数名([参数列表]) : 2. 要点2.1 def 定义函数Python 执行 def 时,会创建一个函数对象,并绑定到函数名变量上。 注:函数也是对象,执行def 定义函数后,系统就创建了相应的函数对象。
2.2 参数列表1. 圆括号内为形式参数列表,若有多个参数则使用逗号隔开; 2. 形式参数不需声明类型,也不需指定函数返回值类型; 3. 即使无参数,也必须保留空的圆括号; 4. 实参列表必须与形参列表一一对应。 2.3. return 返回值1. 若函数体中包含 return 语句,则结束函数执行并返回值; 2. 若函数体中不包含 return 语句,则返回None 值; 3. 若需返回多个返回值,可使用列表、元组、字典、集合将多个值“存起来”。 2.4 文档字符串(函数的注释)可在函数体内最开始的部分附上函数定义说明,通过三个单引号或三个双引号实现,中间可以加入多行文字进行说明。 3. 变量作用域3.1 全局变量1. 全局变量在函数和类定义之外声明,作用域为定义的模块,从定义位置开始直到模块结束; 2. 全局变量降低了函数的通用性和可读性,应尽量避免使用; 3. 全局变量一般做常量使用; 4. 若要在函数内改变全局变量的值,需使用 global 声明。 3.2 局部变量1. 局部变量在函数体中(包含形式参数)声明; 2. 局部变量的引用比全局变量快,应优先考虑使用; 3. 若局部变量与全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量。
4. 参数传递注:函数的参数传递,本质上是从实参到形参的赋值操作。Python 中参数的传递均为“引用传递”,而非“值传递”。 4.1?传递可变对象的引用可变对象包括:字典、列表、集合、自定义的对象 等,对“可变对象”进行“写操作”,直接作用于原对象本身。
4.2?传递不可变对象的引用不可变对象包括:数字、字符串、元组、函数 等,对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间。
5. 浅拷贝 &?深拷贝浅拷贝:不拷贝子对象的内容,只拷贝子对象的引用; 深拷贝:将子对象的内存也全部拷贝,对子对象的修改不会影响源对象。
6. 不可变对象包含可变子对象在函数中,若修改传递的不可变对象中包含的可变子对象,源对象也发生变化。
7.?参数类型7.1 位置参数函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。 7.2 默认值参数可以为某些参数设置默认值,这些参数在传递赋值时可选。默认值参数必须放到位置参数后面。 7.3 命名参数可以按照形参的名称传递参数。
7.4 可变参数即“可变数量的参数”: 1. *param(一个星号),将多个参数收集到一个“元组”对象中; 2. **param(两个星号),将多个参数收集到一个“字典”对象中。 3. 若在带星号的“可变参数”后面增加新的参数,则必须在调用的时候“强制命名参数”。
8.?lambda 表达式8.1 定义lambda 表达式可以用来声明匿名函数,是一种简单的、在同一行中定义函数的方法,实际生成了一个函数对象。 lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。 8.2 基本语法lambda arg1,arg2,arg3... : <表达式> 其中:arg1/arg2/arg3 为函数的参数;<表达式>相当于函数体;运算结果为表达式的运算结果。
9. 嵌套函数即在函数体内部定义的函数(内部函数)。
10. nonlocal 关键字作用类似于全局变量的 global 关键字,用来声明外层的局部变量。
11.?LEGB 规则Python 在查找“名称”时,按照 LEGB 顺序进行查找:Local-->Enclosed-->Global-->Built in Local:函数或者类的方法内部; Enclosed:嵌套函数; Global:模块中的全局变量; Built in:Python 保留的特殊名称; 如果一个名称在所有命名空间中都没有找到,则会产生一个NameError。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 4:42:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |