#区分默认形参 和 关键字实参
函数定义处
def LOL_game_team()
print()
函数调用处(关键字实参在调用处)
LOL_game_team()
<------------------------------------------------->
#### 收集参数
"""
1.普通收集参数(收集多余没人要的普通实参,构成一个元组,必须加*)
def func(*args):
total = 0
for i in args:
total += i
print(total)
func(1,2,3,4,5,...)
2.关键字收集参数(收集没人要的关键字实参,构成一个字典,必须加**)
def func(**kwargs):
strvar = ""
strvar2 = ""
dic{键:值.....}
print(kwargs)
for k,v in kwargs.items():
print(k,v)
if k in dic:
strvar = dic[k] + ":" + v
print(strvar)
else:
strvar2 += v + ","
print("吃瓜群众:" + strvar2.strip(","))
func(.....)
"""
<------------------------------------------------------------------>
#### 命名关键字参数
"""
def func(参数1,参数2,*,参数3...)
(1)在*号后面定义的参数,是命名关键参数
def func(*args,参数,**kwargs)
(2)在普通收集参数和关键字收集参数之间的,是命名关键参数
如果是命名关键字参数,必须使用关键字实参的形式调用
"""
def func(a,b,*,c): def func(*args,dd,**kwargs):
print(a,b) print(args)
print(c) print(kwargs)
函数的调用处
func(1,2,c = 3) func(1,2,3,4,a=1,b=2,c=3,dd="abc")
# 关于* 和**的使用方法
函数定义处,*和**用来接收数据,*打包成一个元组,**打包成个字典
函数调用处,*和**用来解包数据,*一般应用在列表或者元组,**一般用在字典
*lst -->把列表的每一个元素都拿出来,当成参数赋值给func进行调用
**调用处的语法
dic = {"c":3,"d":4}
func(1,2,**dic)
**dic -->把字典里的键值对拿出来,转化成关键字实参的形式,当成参数赋值给func进行调用
综合:
定义处*和调用处*用法是一对相反操作,一个用来打包,一个用来解包
优点:可以控制参数的个数
func(*lst,**dic)
####参数的顺序
形参顺序:
普通形参-->默认形参-->普通收集参数-->命名关键字参数-->关键字收集参数
<----------------------------------------------------------------------------->
### return 自定义返回值
函数可以定义返回值,通过return把这个值返回到函数的调用处
(1)return+返回值 后面除了6大标准数据类型之外,还可以返回函数和类对象
如果没有定义任何返回值,默认返回 None
(2)在函数中,如果执行了return,意味着终止函数,后面代码不执行
def wang()
if sign == 0:
return "王振真帅"
wang()
<--------------------------------------------------------------------------->
# #### 全局变量 和 局部变量
全局变量:在函数外面定义的变量,或者在内部用global关键字定义的变量是全局变量
局部变量:在函数内部定义的变量就是局部变量(局部命名空间)
作用域:作用的范围
全局变量作用范围横跨整个文件
局部变量作用范围仅仅限定在函数内部
global 在函数内部定义一个全局变量
(1)如果函数外部有全局变量,在函数内使用global,可以修改全局变量
(2)如果函数外部没有全局变量,在函数内使用global,可以定义全局变量
def func():
global d
d=300
print(d)
func()
print(d)
生命周期长短
内置命名空间>全局命名空间>局部命名空间
内置变量>全局变量>局部变量
<------------------------------------------------------------------------>
#### 函数名字的使用
第一类对象
python中的函数可以像变量一样,动态创建,销毁,当参数传递,作为返回值
第二类对象
其他语言的函数
1.函数是一个特殊的变量,可以当做变量赋值
2.函数名可以作为容器类型数据的元素
3.函数名可以作为函数的参数
4.函数名可以作为函数的返回值
__doc__ 或者 help 查看文档
王振2020-5-12笔记
最新推荐文章于 2020-06-23 17:39:20 发布