python函数传参方式是什么_Python函数的4种传值的方式

Python函数的4种传值的方式param,param=value,*param,**param

必选传参param

# 必选参数 func(param):

# 1、定义函数时的参数个数,顺序已定义好,在调用函数调时的参数个数、顺序必须一致,不能多,也不能少,也不能乱(和之前的顺序一致),因此叫必选参数,这是最常用的传参方式

def test(param1,param2,param3):

print param1,param2,param3

test(1,"hello",True)

test(True,1,"hello")

"""

执行结果:

1 hello True

True 1 hello

"""

默认传参param=value

# 默认参数func(param=value):

# 1、定义函数时,已为参数设定一个默认值,假如调用函数时不传参,在函数内部使用参数时的值则为默认值,传参时则和必选参数一样使用

# 2、如果必选参数和默认参数同时存在,则默认参数必须跟在必选参数后面

# 3、如果有多个默认参数,调用时顺序可以不一致,但是必须要显式表明是哪个默认参数,例如 param2=100,但是建议统一按照函数定义的顺序进行使用

def test(param1,param2=100,param3=True):

print param1,param2,param3

test(1) # 默认参数可以不传

test(1,"hello",False) # 多个默认参数时,调用顺序一致

test(1,param3=False,param2="hello") # 调用顺序也可以不一致

"""

执行结果:

1 100 True

1 hello False

1 hello False

"""

可选参数*param

# 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用可选参数表示,书写格式为参数名称前带一个*号

# 2、可选参数在调用时的形式是以一个tuple元组形式存在,即param是一个元组

# 3、当定义了一个可变参数时,可以把一个列表或者元组作为一个整体的参数进行传递,只需要在传递的时候,列表或者元组变量名前带*则可

# 4、当有必选参数,默认参数,可选参数时,必须按照必选参数,默认参数,可选参数进行定义

# 5、推荐写法是*args,但是写成啥都可以

def test(param1,param2=100,*param3):

def printP12():

print param1,param2

def printP123():

print param1,param2,param3,type(param3)

printP123() if len(param3)!=0 else printP12()

test(1,2,3,4,5,6)

li = [1,2,3,4]

tu = (1,2,3,4)

test(1,2,*tu)

"""

运行结果:

1 2 (3, 4, 5, 6) 3

1 2 (1, 2, 3, 4) 1

"""

关键字参数**param

# 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用关键字参数表示,它与可变参数区别在于传参时必须使用默认参数的形式进行传参,例如param1=1,param2=2

# 2、关键字参数在调用时的形式是以一个dict字典形式存在,即param是一个字典

# 3、当定义了一个关键字参数时,可以把一个列表作为一个整体的参数进行传递,只需要在传递的时候,字典变量名前带**则可

# 4、当有必选参数,默认参数,可选参数,关键字参数时,必须按照必选参数,默认参数,可选参数,关键字参数进行定义

# 5、推荐写法是**kwargs,但是写成啥都可以

def test(param1,param2=100,*param3,**param4):

def printP12():

print param1,param2

def printP1234():

print param1,param2,param3,param4,type(param4)

printP1234() if len(param3)!=0 and len(param4)!=0 else printP12()

test(1,10,11,a=1,b=2,c=3)

dict = {"a":1,"b":2,"c":3}

test(1,10,11,**dict)

"""

执行结果:

1 10 (11,) {'a': 1, 'c': 3, 'b': 2}

1 10 (11,) {'a': 1, 'c': 3, 'b': 2}

"""

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值