函数知识(2)

函数对象
一、用法1 函数名可以当做变量名赋值
二、用法2 函数名可以当做函数的实参
三、用法3 函数名可以当做函数的返回值
四、用法4 函数名可以当做容器类型(内部可以存放多个数据)
函数的嵌套调用:
嵌套调用:函数内部调用其他函数
实际案例
函数的嵌套定义
嵌套定义:函数体内部定义其他函数,将复杂的功能全部隐藏起来,暴露一个简单的接口。
闭包函数

闭:意思是在函数内部的函数
包:内部函数使用了外部函数名称空间中的名字
只有符合了上述开那个歌特征函数才可以称之为‘闭包函数’
闭包函数的作用
闭包函数其实是给函数传参的第二种方式
方式一:函数体代码需要用到数据,直接在括号里定义形参即可
def index(username):
print(username)
方式二:利用闭包函数
装饰器
器:指的是工具
装饰:给被装饰队形添加额外的功能
原则:开放封闭原则开放:对扩展开放
封闭:对修改封闭
核心思想:在不改变被‘装饰对象内部代码’和‘原有调用方式’的基础之上添加的额外功能
名称空间的作用域
作用域:
名称空间能够作用的范围内置名称空间:程序任何阶段任何位置均可以使用(全局有效)
全局名称空间:程序任何阶段任何位置都可以使用(全局有效)
局部名称空间
一般情况下只在各自的局部名称空间中有效
global与nonlocal关键字的使用
global的使用

在局部修改全局数据时:
如果数据为不可变类型则需要关键字global声明
如果数据为可变类型则无需关键字global声明
例如:
nonlocal的使用

在内部局部修改外部局部数据时:
如果数据为不可变类型则需要关键字nonlocal声明
如果数据为可变类型则无需关键字nonlocal声明
例如:
又是一天~~











浙公网安备 33010602011771号