您的位置:首页 > 编程语言 > Python开发

Python的4种传值的方式,必选传参 func(param)、默认传参func(param=value)、可选传参func(*param)、关键字传参func(**param)列举说明

2017-04-11 00:05 274 查看
#coding:utf-8
#author:libingxian

"""
Python的4种传值的方式,必选传参 func(param)、默认传参func(param=value)、可选传参func(*param)、关键字传参func(**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
"""

# 默认参数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
"""

# 可选参数func(*param):
# 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用可选参数表示,书写格式为参数名称前带一个*号
# 2、可选参数在调用时的形式是以一个tuple元组形式存在,即param是一个元组
# 3、当定义了一个可变参数时,可以把一个列表或者元组作为一个整体的参数进行传递,只需要在传递的时候,列表或者元组变量名前带*则可
# 4、当有必选参数,默认参数,可选参数时,必须按照必选参数,默认参数,可选参数进行定义

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 <type 'tuple'>
1 2 (1, 2, 3, 4) 1 <type 'tuple'>
"""

# 关键字参数func(**param):
# 1、定义函数时,当传入的参数个数不确定,可能为0个,1个,2个.。。。多个时,则可用关键字参数表示,它与可变参数区别在于传参时必须使用默认参数的形式进行传参,例如param1=1,param2=2
# 2、关键字参数在调用时的形式是以一个dict字典形式存在,即param是一个字典
# 3、当定义了一个关键字参数时,可以把一个列表作为一个整体的参数进行传递,只需要在传递的时候,字典变量名前带**则可
# 4、当有必选参数,默认参数,可选参数,关键字参数时,必须按照必选参数,默认参数,可选参数,关键字参数进行定义
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} <type 'dict'>
1 10 (11,) {'a': 1, 'c': 3, 'b': 2} <type 'dict'>
"""
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: