本节内容:

1.动态参数

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2.函数的注释

3.函数名称空间(三个空间)

4.两个作用域、全局变量和局部变量

5.函数的嵌套

 

 

 

2.函数的注释:

函数进阶 —— 动态参数、内置空间、函数嵌套 Python 第1张
def aaa(user,pwd):
    """
    登录函数
    :param user: 用户名
    :param pwd: 密码
    :return: 校验后的账号和密码
    """
    print(111)

print(aaa.__doc__)


登录函数
    :param user: 用户名
    :param pwd: 密码
    :return: 校验后的账号和密码
View Code
 

 

3.名称空间

 
1.内置空间中所有代码   --> 内置空间
2.自己写的py文件 --> 全局空间
3.函数中的代码 --> 局部空间

函数进阶 —— 动态参数、内置空间、函数嵌套 Python 第3张

 

 
加载顺序:
'''
1.内置空间
2.全局空间
3.局部空间
'''

# 取值顺序:
'''
1.局部空间
2.全局空间
3.内置空间
4.找不到就报错
'''
 
4.作用域:
'''
1.全局作用域 内置+全局 = 全局作用域
2.局部作用域 函数内的就是局部作用域

全局变量:定义在函数外部的变量。
局部变量:定义在函数内部的变量,或者代码块内部的变量。
global(指定全局变量):在局部空间只修改全局变量,没有就创建修改。
nonlocal(指定上一级变量):在局部空间内,修改最近的上一层变量,如果没有就继续往上一层查找,

1 a = 0
2 def func1 ():
3     a = 1
4 def func2 ():
5     print a
6 func1()
7 func2()
 
 
1 a = 0
2 def func1 ():
3     global a 
4     a = 1
5 def func2 ():
6     print a
7 func1()
8 func2()
 

 

 
函数进阶 —— 动态参数、内置空间、函数嵌套 Python 第4张
a = 10
def func():
    global a  # (声明)我要修改a 找到要a
    a+=1      # 修改
func()
print(a)
View Code
 

输出的a是11

 
函数进阶 —— 动态参数、内置空间、函数嵌套 Python 第6张
def func():
    global a  #(声明我要修改a,找不到a的时候在全局创建一个 a=0)
    a = 1  # a = 1
func()
print(a)
View Code
 

输出的a是1


重点:5.函数的嵌套:
函数的嵌套1:
 1 def fun():
 2     print(3)
 3     def f():
 4         print(2)
 5     print(1)
 6     f()
 7 fun()
 8 print(4)
 9 
10 结果:
11 3
12 1
13 2
14 4
 
 1 name = "yangtuo is good"       #    1
 2 def yangtuo():                 #    2     将整个函数放入内存编译,但是不执行
 3     name = "yangtuo"           #
 4     print(name)                #
 5     def yang():                #    3     将整个函数放入内存编译,但是不执行
 6         name = "yang"          #
 7         print(name)            #
 8         def    tuo():          #    4    将整个函数放入内存编译,但是不执行
 9             name = "tuo"       #
10             print(name)        #
11         tuo()                  #    4.1    执行函数tuo,得出结果 tuo
12         print(name)            #    5    调取yang的name,得出结果    yang
13     yang()                     #    3.1    执行函数yang,得出结果 yang
14     print(name)                #    6    调取yangtuo的name,得出结果yangtuo
15 yangtuo()                      #    2.1    执行函数yangtuo,得出结果 yangtuo
16 print(name)                    #    7    得出结果yangtuo is good

 


函数的嵌套2

 

 1 a = 1
 2 def fun_1():
 3     a = 2
 4     def fun_2():
 5         nonlocal a
 6         a = 3
 7         def fun_3():
 8             a = 4
 9             print(a)      #4
10         print(a)          #3
11         fun_3()
12         print(a)          #3
13     print(a)              #2
14     fun_2()
15     print(a)              #3
16 print(a)
17 fun_1()
18 print(a)                  #1

 




扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄