柚子快报邀请码778899分享:初始函数
函数
func()
func 函数的内存地址
函数名加括号 == 调用
函数的地址加括号 == 调用
函数定义 : 关键字 函数名 语法 参数 返回值
函数调用 : 函数名 函数的内存地址 传实参 接收返回值
函数名
函数名可以像一个变量一样去使用 -----> 函数是第一类对象
函数名可以赋值
函数名可以作为容器类型中的一项
函数名可以作为函数的参数
函数名可以作为函数的返回值
参数
形参 位置参数 *args 默认参数 **kwargs
实参 :
按照位置传参 : 1,2,3 *[1,2,3]
按照关键字传参 : a = 1,b = 2, **{'a':1,'b':2}
动态位置参数 *args
动态关键字参数 **kwargs
位置 > 动态位置参数 > 默认(关键字)参数 > 动态关键字参数
返回值
没有返回值 有一个 有多个
命名空间 存放名字和值关系的空间
局部命名空间 在函数中声明的变量会放在局部命名空间
全局命名空间 我们直接在py文件中,函数外声明的变量都属于全局命名空间
内置命名空间 存放python解释器为我们提供的名字,list,tuple,str,int这些都是内置命名空间
加载顺序: 先来后到
内置 > 全局 >局部
同一个名字 : 局部覆盖全局和内置,全局覆盖内置 ------> 永远不要起和你知道的内置命名空间中重名的名字
取值顺序:
局部>全局>内置
作用域
全局命名空间作用域 : 局部和全局,加载是在运行的时候
局部命名空间作用域 : 函数局部,加载是在调用的时候
内置命名空间作用域 : 全局和局部,加载是在运行之后代码之前
globals( ) 查看全局作用域中的变量和函数名
locals( ) 查看局部作用域中的变量和函数名
函数的嵌套:
函数的注释
global
可变数据类型在局部可以进行修改操作,不可变类型需要global
nonlocal
表示在局部作用域中,调用父级命名空间中的变量
柚子快报邀请码778899分享:初始函数
发表评论
2024-06-14 15:13:23回复
命名空间是存放名字和值关系的空间,包括局部命名空间、全局命名空间和内置命名空间,加载顺序为:内置 > 全局 > 局部,同一个名字在不同作用域中有不同的覆盖规则,永远不要起和已知的内置命名空间中重名的名字,取值顺序为:局部 > 全局 > 内置。
作用域分为全局命名空间作用域、局部命名空间作用域和内置命名空间作用域,加载时间分别为运行时、调用时和运行之后代码之前,可以使用globals()查看全局作用域中的变量和函数名,使用locals()查看局部作用域中的变量和函数名。
函数嵌套是指在一个函数内部定义另一个函数,可变数据类型在局部可以进行修改操作,不可变类型需要使用global声明,nonlocal表示在局部作用域中,调用父级命名空间中的变量。