1 def func(a,*args,b=1,**kwargs): #形参部分 2 # a是位置参数,b是默认参数,*args接收除关键字参数以外所有数据..**kwargs可接收除对应关键字参数以外所有数据. 3 # def func(*args,**kwargs): #万能接收 4 ''' 5 :param args:要标识的内容 6 :param kwargs:要标识的内容 7 :return :要标识的内容 8 ''' 9 print(a) #位置参数,可放任何数据类型 10 print(*args) #打散元组或列表类型为单独数据 11 print(args) #args接收数据以元组形式 12 print(b) #关键字参数,修改值 13 print(*kwargs) #打散关键字参数,(字典的键)单独数据 14 print(kwargs) #关键字参数,按字典方式输出{'d': 2, 'c': 1, 'e': 5} 15 func({1,2,3,4},[1,3,4,6,8],2,5,b=8,d=2,c=1,e=5) #参数顺序:位置参数,动态位置,关键字参数,动态关键字
结果对照:
1 {1, 2, 3, 4} 2 [1, 3, 4, 6, 8] 2 5 3 ([1, 3, 4, 6, 8], 2, 5) 4 8 5 d c e 6 {'d': 2, 'c': 1, 'e': 5}
声明局部变量和全局变量:
1 def func(): 2 global a #global直接将变量提到全局,不影响上一层同名变量..全局变量在局部作用域中使用时,只可被访问无法被修改 3 a = 20 4 b = 20 5 def func1(): 6 nonlocal b #nonlocal修改离它最近的局部变量(非全局,否则报错) 7 b = 10 8 func1() 9 print(b) 10 print(locals()) #locals()查看当前作用于的所有变量和方法 11 func() #globals()查看全局作用域的的变量和方法 12 print(a)
结果对照:
1 10 2 {'func1': <function func.<locals>.func1 at 0x00000138459C87B8>, 'b': 10} 3 20