一:内部函数:
内部函数,即如果一个函数实现的功能单一,但这个单一的功能本身逻辑就非常复杂,那么可以在这个函数的内部再定义一个函数,从而降低逻辑和编码复杂度。
def move(x, y):
def add(x, y):
return x + y
return add(x, y)
print(move(2,3))
二、闭包:
当使用内部函数中,外部定义的函数返回了内部函数的处理结果;
python还可以直接通过返回内部函数的函数名返回内部函数的定义,这就是闭包;
闭包返回了内部函数的定义,所以接收的变量名也接收了一个函数的定义,并不执行。
def move(x, y):
def add():
print(x, y)
return add #返回函数名,闭包
add = move(2, 3) #调用闭包,返回内部函数的定义,但不执行
add() #再次调用才开始执行
2 3
三、装饰器:
有时候,我们想给一个函数增加一些功能,但我们并不想改变这个函数的任何东西,如函数名、调用方式和内部代码,那我们就可以使用装饰器。
def timer(func): #我是装饰函数
def deco(): #我用闭包机制给原函数增加了代码
print("我是要增加的第一行代码")
func() #我是原函数
print("我是要增加的第二行代码")
return deco #我用闭包机制返回一个函数
#@timer是装饰器语句,这个语句也可以写成这样test1=timer(test1)
#@timer的意思是调用了上面的装饰函数,并将下面的原函数以参数传入
@timer
def test1():
print("我是原函数")
test1() #上面的仅仅是装饰,我才是执行
至此,我们就把python的基础知识学完了,在真正工作之前,我们还需要了解一下python常用的内部函数
欢迎收看:如何自学人工智能