Python自学笔记(12day)
函数的解释
a=1 def func(): a+=1 print(a) func() #func():意思就是,我调用函数,所得到什么结果?然后去调用的函数中去找。
#:结果:2
a=1 def func(): a+=1 return a func() #调用函数,得到a的值2,此时func()结果为2,但是没有打印,所以啥都没有,加上一个#print(),就好了
(1)当函数形参含有默认参数为可变数据类型时,每次调用同一个参数.
def func(l=[]): l.append(l) print(l) func() func() func() #输出:[1],[1,1],[1,1,1]
(2)函数的命名空间:
(1)全局命名空间 :就是非函数内部的命名空间
(2)局部命名空间:函数内部的命名空间
(3)内置命名空间:解释器自带的
注意:1. 全局变量不可以使用局部变量
2. 局部变量可以使用去那句变量,但是不可以使用全局变量中大的不可变数据类型,如果想用,需要再程序开始时加上一个global
3. 各函数的局部变量之间相互独立,互补影响。
a=1 def func(): a=2 print(func()) #输出:1,局部变量不可用全局变量中不可变的数据类型。
a=1 def func(): global a #我将要对a进行修改 a=2 print(func()) #输出:2
一般来说不建议使用global,因为当代码较多时,容易出现出现问题,那想要再局部中使用a,又想要修改a的值如何做到?
a=1 def func(a): a=2 return a a=func(a) print(a)
(3) 对于全局作用域中查找命名变量的名字用global()
对于本地作用域中查找名字用locals()
a=1 b=2 def fun(c): x="aaaa" y="bbbb" print(locals()) fun(c) print(gloabl()) #输出:{"x":"aaaa","y":"bbbb"} # {"a":1,"b":2}