欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

20190902学习日志(全局变量及不定长参数)

程序员文章站 2022-03-04 21:45:46
...
  1. 温习知识点:全局变量和局部变量。

关于全局变量与局部变量
在函数的内部使用一个变量
遵循一个规则: 先在函数内部找 找到直接使用 如果找不到到函数外部找 如果还是找不到 就报错(由内到外)
函数内部对全局变量的值进行修改 global
标识下函数内部的num不是一个局部变量 而是对全局变量重新赋值
可以对全局变量的值进行修改

#关于全局变量
a=0
def A():
    global a  #将 A 函数内的 a 声明为全局变量
    a +=1 #如果不声明,系统⽆法判断第二个 a 是全 的还是局部的,导致程序运行报错 。
    print(a)
A()    

#当函数内外部都有相同的变量(名)存在时,代码执行的时候会优先选择函数内部定义的变量进行调用。只有当内部变量也是用global声明时,才能调用正确。

[OUT]2
num = 10
 

def my_func2():
    global num
    num = 20 #优先使用局部变量
    print(num)

def my_func1():
    print(num)#调用全局变量
    
print(num)   
my_func1()
print(num) 
my_func2()
print(num)

------------------------
[OUT]
10
10
10
20
20

  1. 不定长参数
    https://blog.csdn.net/Panda996/article/details/84787952
    参照这篇文章学习
    '*'是列表, '**'是字典
A=[22,33,44]
B={"name":"wang han","age":33,"gender":"boy","job":"Manager"}
def test(a,*args,**kwargs):
	print("a=%s" %a)
	print("args:")
	for each in args:
		print(each)
	print("kwargs:")
	for each in kwargs:
		print(each)
test(1,*A,**B)  # 传参时,先将A,B拆包,一个*拆列表,两个**拆字典

[OUT]
a=1
args:
22
33
44
kwargs:
name
age
gender
job
相关标签: 学习日志