函数部分
-
函数部分一旦遇到return,结束整个函数
-
返回的多个值会被组织成元组被返回,也可以用多个值来接收
-
函数传参
- 位置参数必须在关键字参数的前面
- 对于形参只能赋值一次
-
默认参数也可以通过传参改变参数
-
参数陷阱
def defult_param(a,l = []): l.append(a) print(l) defult_param('alex') defult_param('egon') #输出结果 #['alex'] #['alex', 'egon'] #有意思的动态参数,或许以后真的会用到!!!
命名空间
- 创建的存储“变量名与值的关系”的空间叫做全局命名空间在函数的运行中开辟的临时的空间叫做局部命名空间
作用域
-
作用域就是作用范围,按照生效范围可以分为全局作用域和局部作用域
-
全局作用域:包含内置名称空间、全局名称空间
-
局部作用域:局部名称空间,只能在局部范围内生效
-
print(globals())#寻找全局作用域 print(locals())#寻找局部作用域 a = 10 def func(): global a a = 20 print(a) func() print(a) #把a强行变成全局 #输出结果为 #10 #20
nonlocal关键字
-
# 1.外部必须有这个变量 # 2.在内部函数声明nonlocal变量之前不能再出现同名变量 # 3.内部修改这个变量只能外部有这个变量的第一层函数生效
def f1(): a = 1 def f2(): nonlocal a a = 2 f2() print('a in f1 : ',a) f1()
gs