函数知识点整理

it2022-05-05  199

函数

一组语句通过一个名字(函数名)封装起来,想要执行的时候只需要调用其函数名即可

特性

减少重复代码程序可扩展程序容易维护

参数

形式参数

函数被调用时分配内存,调用结束后释放形参只在函数内部有效

实际参数

常量、变量、表达式、函数等对象 默认参数

关键参数

指定参数名传参数,关键参数放在位置参数之后

非固定参数1

*args, 传入的参数就是一个元组如果参数中出现 *args, 传递的参数就可以不再是固定个数,传过来的所有参数打包元组如果传入的参数是一个列表或元组,那么就要在列表或元组前面加上*要放在传入参数的最后

非固定参数2

**kwargs, 传入的参数就是一个字典

返回值

return可以返回任意对象,return代表函数的结束

局部变量

定义在函数里的变量,只能在函数里生效

全局变量

定义在函数外部一级代码的变量,全局能用如果全局和局部都有一个同名变量,函数的查找顺序是由内而外。

global

在函数中定义全局变量需要先global声明全局变量,后定义变量值不建议函数中改全局变量

函数里不能直接修改的数据

字符串数字布尔值

作用域 scope

python中函数就是一个作用域,局部变量定义在作用域中代码定义完成后,作用域已经生成(不是调用的时候才生成),作用域链向上查找

嵌套函数

函数里层再定义函数

匿名函数

lamda

map(lambda x:x + 1, list(range(10)))

高阶函数

接收一个或多个函数作为参数输入return返回另外一个函数

递归

函数的内部调用函数本身必须有明确的结束条件每次递归问题规模都应有所减少递归效率不高,递归层数太多会导致栈溢出

命名空间 namespace

记录对象和对象名字对应关系的空间

LEGB访问规则

往上寻找,由内而外

局部命名空间 local

函数的参数局部变量类的属性

闭包命名空间 enclosing function

闭包函数的命名空间(Python3引入)

全局命名空间 global

读取一个模块(.py)后产生的命名空间

内建命名空间 build-in

Python解释器启动时自动载入__built__模块形成的名称空间各种内置函数str/list/open

闭包

闭包是一种代码组织结构

内部函数可以使用外部函数变量的行为,就叫闭包

闭包是由函数及其相关的引用环境组合而成的实体而在函数式语言中,当内嵌函数体内引用到体外的变量时,将会把定义时涉及到的引用环境和函数体打包成一个整体(闭包)返回 def foo(): m = 3 n = 5 def bar(): a = 4 return m + n + a return bar >>>bar = foo() >>>bar()

装饰器

语法糖本质是一个返回函数的高阶函数想对一个函数扩展功能,又不希望修改原函数代码的情况下就需要装饰器

转载于:https://www.cnblogs.com/chacecai/p/8950919.html


最新回复(0)