参数:
定义函数时(参数常见的使用):1. def i(num) 2. def i(num1,num2 = 自己定义) 3.def i(*arg,*kwarg)
调用函数时 (参数的传入):位置参数>关键字参数
- 不定长参数:
- *args:调用函数时使用位置传参,得到元组
- **kwaaargs:调用函数时使用关键字传参,得到字典
- *args:
- def funk(*arg):
- print(arg)
- funk(1,2,3)
- funk(*(1,2,3)) #*可以理解为对列表进行拆散
- >>>(1, 2, 3)
- (1, 2, 3)
- **kwargs:
- def funk(**kwargs):
- print(kwargs)
- funk(a = 1,b =2)
- funk(**{'a':1,'b':2})
- >>>{'a': 1, 'b': 2}
- {'a': 1, 'b': 2}
- def i (*args,**kwargs):
- print(args,kwargs)
- i (1,[1,2],*[1,2,3],a = 1,**{"b":2})
- >>>(1,[1,2],(1,2,3)){"a":1,"b":2}
-
-
-
-
-
复制代码 作用域:
全局作用域和一个函数为一个作用域 --> 全局变量,局部变量 规范:全局变量用大写
定义的函数中变量的查找:自己->父级->父级->....父级->全局 :即函数调用时可读取全局变量,修改全局变量(可变类型,如对列表添加元素)但此处的修改不能是对全局变量重新进行赋值
改变全局变量关键字:global
改变父级变量关键字:nonlocal
- name = "gh"
- def i():
- name = "g"
- def e():
- global name #声明这层使用的全局变量name
- name = "guohan" #全局变量重新赋值
- print(name) #guohan
- e()
- print(name) #g,其在第一层函数下
- i()
- print(name) #输出全局变量name(i()被调用则全局name被重新赋值
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |