函数的解释
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}
来源:https://www.cnblogs.com/baobaoran/p/9665081.html