函数的基本定义
函数定义的基本语法:
def 函数名([参数]):
函数体
[return 返回值]
- 不带参数的函数
def 函数名():
函数体
- 带参数的函数
def 函数名(参数):
函数体
- 带返回值的函数
def 函数名():
函数体
return 返回值
- 函数文档:用
'''...'''包围的对函数的解释 - 把函数放入模块并调用:
a). 用import语句导入整个函数模块:import find_factor
b). 用import导入指定函数模块:from find_factor import find_factor_1
c). 用import导入所有函数:from find_factor import *
d). 模块名、函数名别名方式:import find_factor as ff1 - 模块搜索路径:用
sys.path方法指定需要访问的函数模块路径
函数的值传递
- 函数参数类型包括:固定参数、关键字参数、默认值、不定长参数
- 函数参数可以传递的类型除基本类型外,还可以传递元组、列表、字典值
- 在传递元组、列表、字典值使,在函数内部对参数进行修改会渗透到函数外(类似于这些集合类型是引用类型,引用同一块内存地址)——解决方法是对参数进行复制(
EditFruit('西瓜',attr.copy()))。
函数的作用域
- 全局变量和局部变量与
C++等语言类似 global关键字:函数内部智能读取全局变量的值,若需要修改全局变量,则需要使用global关键字进行事先声明,否则会报错(类似变量提升)nonlocal关键字与闭包:介于全局变量和局部变量之间的一种特殊变量,要修改闭包变量,需要用nonlocal关键字修饰(类似变量提升)- 匿名函数:
lambda x,y:(x*y)
递归函数
递归一次,在内存中开辟一个新的地址空间,记录递归过程状态,一直递归分解到最小范围,最后得出要么找到对应的值,要么返回找不到的结果。
实际上是调用栈:每递归一次,就进栈一次,并在栈列表里记录调用内容;每返回一次,就出栈一次,并把值返回给上一个栈列表。
本文围绕Python函数展开,介绍了函数的基本定义,包括不同参数和返回值情况,以及函数文档和模块调用方法。阐述了函数的值传递,涉及参数类型和集合类型传递问题。还讲解了函数的作用域,如全局、局部变量及闭包变量,最后介绍了递归函数的原理和调用栈机制。

3210

被折叠的 条评论
为什么被折叠?



