先说def语句:
定义函数,
如:
def spam(name):
print("hallo',name)
spam(kd)
执行上面的程序会得到
hallo kd
就是spam()为函数 括号中的name是参数,只要输入相应的参数,为匹配内容,如:
def kd_age(nuber):
print('your age is ' + nuber)
kd_age(20)
如果执行上面的代码得到的结果是:
your age is 20
现在来说说全局作用域和局部作用域(下面用全局、和局部说明)中的变量关系
我尝试用简单来表述一下:
全局的变量可以给局部使用;
局部的变量不能给全局使用;
当全局和局部的有相同的变量赋值时,局部会优先选择自己的赋值。
我尝试举例子:
def spam(): #就算全局变量和局部变量都是一样,局部变量赋值不会改变全局变量
eggs = 10 #局部变量只作用于局部相应的作用域。
print(eggs) #这里eggs 显示的值是局部 eggs =10 的值
eggs =20
spam() #所以这里显示的是10
print(eggs) #这里eggs 显示的值是全局 eggs = 20 的值
上面执行之后得到的结果是
10
20
按照上面的结果来看,就算全局赋值eggs 为 20 的值,局部还是优先自己 eggs 为 10 的赋值。
global语句
在局部中的变量前面加global,那么这个变量会跟全局变量的等价的
比如:
def test():
global name
name = 'kd1'
name = 'kd'
test()
print(test)
结果是:
kd1