一、函数说明文档
- 什么是函数说明文档?
- 给函数的代码做解释说明。
- 让别人知道程序的作用。
示例:def user():
```
内容
```
def a(): #三个‘’号,可以用来对函数的内容进行说明,相当于函数的说明书
'''
这是飞机:'sxiaoaklfjkl'
'''
a()#光标放在调用函数的位置可以看到说明文档
二、函数的嵌套
示例1:
def a():#外部函数
print('hello’)
def b():#内部函数
print('word')
示例2:
def a():
print('hello’)
b()#在a函数里调用了另一个函数b
def b():
print('word')
a()#调用函数a,可以得到两个值
def b():
print('你好')
def c():
print('haoareyou')
def b():
print('你好')
c()#在函数内部调用另一个函数
def c():
print('haoareyou')
b()#调用函数b
三、函数的作用域
- 全局作用域:指的是在模块中定义的变量和函数,可以在模块的任何位置被访问和使用。其中的变量叫全局变量。
- 局部作用域:指的是在函数内部定义的变量和函数,只能在该函数内部被访问。其中的变量叫局部变量。
a=100#在全局作用域中的变量
def b():
c=10#在局部作用域的变量
print(a)#在全局作用域中,可以访问
print(c)#在局部作用域,不可以在全局作用域中访问
3.global关键字:可以在函数内部声明变量为全局变量
ab=19
def d():
cd=78
global ab #将局部变量ab改为全局变量,这样就可以通过局部改变全局的变量
ab=200#将全局变量改为200
print(ab)#全局变量可以在函数内部访问
def f():
print(ab)
f()#先调用函数f得到19
d()#后调用的已经将全局变量修改为200,所以得到200
四、闭包
1. 什么叫闭包?
内部函数使用了外部函数的变量
def item():
ef=78
def user():
print(ef)
2.闭包的作用
- 保证数据不会被外部污染
def user():
c=0
def a():
print(c)
#c=c+1 #内部函数不能直接修改闭包的数据,可以通过声明修改
- 保持变量状态
def b():
e=2
def c():
nonlocal e#声明:指向外部函数变量e,此时可以在内部函数改变闭包e的值
e+=1
return e #将e的值返回给函数c
return c#将函数c的值返回给函数b
五、装饰器
1.什么叫装饰器?
装饰器(decorator)是 Python 中一个非常强大且常用的功能,它允许你在不修改函数本身代码的情况下,为函数或方法添加额外的功能
2.怎么用?
- 写个闭包
- 创建一个函数
- 调用这个函数
- 用装饰器获取功能(@闭包名)
- 传参
- 在内部函数里调用全局作用域里的函数
#1.写一个闭包
def func1(x):#5.传参
def func2():
print('功能:金箍棒')
x()#6.调用func3,闭包
return func2#返回func2的值给函数func1
#2.创建一个函数
#4.用装饰器获取功能
@func1#将函数func3作为一个实参给func1里的形参x
def func3():
print('我是大神')
#3.调用函数
func3()
标签:闭包,技巧,作用域,高级,变量,print,def,函数
From: https://blog.csdn.net/TechNinja/article/details/143221599