python-含参函数

#!/usr/local/bin/python3
# -*- coding:utf-8 -*-
'''
#----------函数位置参数和关键字参数----------
def test(x,y):  #此处的 x,y为形参
    print(x)
    print(y)
test(1,2)       #位置参数调用-此处的 1,2为实参,且与形参一一对应
test(y=2,x=1)   #关键字调用,与形参位置无关
#test(x=1,2)    #此处会报错:因为在位置参数调用和关键字调用混合使用的情况下,会优先进行位置参数调用
                #因此位置参数必须放在关键字的前面

#----------函数默认参数----------
def test(x,y=2):        #何为默认参数?
    print(x)            #指在定义形参时,给形参提前赋的值
    print(y)
test(1)     #此时若只传递一个实参,那么另外一个实参则由函数默认参数所指定
test(1,y=3) #也可修改默认参数,即传递实参时指定默认参数即可,与test(1,3)等价

#默认参数特点:调用函数时,默认参数可有可无(非必须传递)

#----------参数组----------#即 非固定参数

#1-实参个数不固定     #注:*args:接收N个位置参数转换为元组的形式
def test(*args):    #对于实参个数不固定的情况,可以定义一个'*'开头的形参,'*'是功能代号
    print(args)     #这个形参会将所有的实参放入一个tuple
test(1,2,3,4,5)
test(*[1,2,3,4,5])  #传入列表参数,相当于*args=*[1,2,3,4,5] --> args=tuple([1,2,3,4,5])

#1-与位置参数结合(*args)
def test2(x,*args):
    print(x)
    print(args)
test2(1,2,3,4,5,6,7)    #将 1 赋值给 x,(2,3,4,5,6,7)赋值给args

#2-接收字典作为参数
def test3(**kwargs):    #注:**kwargs:将N个关键字参数转换为字典的方式
    print(kwargs)
test3(name="zhangyu",age=18)  #将关键字名称作为key,参数值作为value
test3(**{"name":"zhangyu","age":18})    #可以传入一个字典作为参数

#3-与位置参数结合(**kwargs)
def test4(name,**kwargs):
    print(name)
    print(kwargs)
test4("zhangyu",age='18',sex='M')

#4-与默认参数结合
def test5(name,age=18,**kwargs):
    print(name)
    print(age)
    print(kwargs)
test5("mahongyan",sex='M',hobby='game')
test5("zhangguobin",sex='M',hobby='None',age='40')

#5-混合使用
def test6(name,age=18,*args,**kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)
test6("zhangyu",age=34,sex='M',hobby='game')  #注:args只能接收位置参数,因此此时args为空
'''

  

猜你喜欢

转载自www.cnblogs.com/octopuszy/p/9021327.html
今日推荐