关闭
当前位置:首页 - 音乐世界 - 正文

谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思想建模、模型制造方法论

admin 2019-05-12 302°c

Python 的四种同享传参详解

Python 仅有支撑的参数传递方法为同享传参(ca朔风秋水ll by sharing),传递参数一共有四种传递方法,分别为:方位参数,默要害字参数和可变参数,其间可变参数分为两种(*args 和 **kar白凯南gs)。

一、方位参数

函数调用时,参数会依据函数界说的参数方位而主动传递。

def func(a, b):
print(a)
print(b)
return a+b
>>func("A", "B")
A
B
'AB'
>>func("B", "A")
B
A
'BA'

在上述实例中,咱们发现参数的传递有必要严厉依照参数的界说方位进行传递的,并且函数的参数与调用函数所传递的参数数量不一致时,就会引发TypeError。

二、默许参数

函数调用时,为函数的某个参数供给默许值,调用函数时可挑选不传入改参数的值。

def func(a="B", b):
print(a)
print(b)
return a+b
SyntaxError: non-defa显卡驱动ult argument follows default argument
def func(a, b="A"):
print(a)
print(b)
return a+b
>>func("A")
A
A
'AA'
>>func("A", "B"):
A
B
"AB"

从上述实例中,咱们发现默许参数有必要在方位参数的后边。个人认为默许参数是方位参数的一种缺省方式。这也能够解说为何默许参数有必要在方位参数的后边。

三我国气候前史气候查询、要害字参数

在进行函数调五彩衣用时,运用 "参数名"="值" 的方式进行参数指定。铲除方位参数在调用时的次序要求。

def func(a, b):
print(a)
print(b)
return a+b
>>func(b="B", a="A")
A
B
"AB"
def func(a, b="B"):
print(a)
print(b)
return a+b
>>func(a="A")
A
B
'AB'谈笑靖
>>func(a="A", b="C"):
A
B
'AC'

从上述实例能够看出,尽管函数界说时依照方位参的方式界说的,可是仍然能够在调用的时分能够运用要害字参数来进行指定,假如函数界说时有默许参数,则仍然能够挑选缺省或许传入。

四、可变参数

可变参数是指在函数界说时运用 *args (*加参数名)和 **kargs (**加参数名)的方式作为参数,在函数调用时就能够传入多个参数,会在实践谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论工程中愈加灵敏,其间 *args 对应着传入多个方位参数,**kargs 对应传入多个要害字参数。

def func(*args):
print(type(args))
pri鹰嘴豆nt(args)
for i in args:
print(i)
>>func("A", "B")

('A', 'B'谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论)
A
B
>>> func()

()

从上述实例中能够看出,可变参数 *args 在运用时能够自由挑选方位参数个数,在函数运用时,高盛函数会主动生成一个元组 (tuple) 来放置方位参数,咱们在界说函数的时分只需要操作对应的元组即可,留意一个小细节,为何要运用元组?这实践上也对应了位富平气候预报置参数舞蹈教育视频的方位不行变性。

def func(**kargs):
print(type(kargs))
print(args)
for key, value in kargs.items():
print("%s : %s" % (key,value) )
>>> func谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论(a="A", b="B")

{'a': 'A', 'b': 'B'}
a : A
b : B
>>> func(b="B", a="A")

{'b': 'B', 'a': 'A'}
b : B
a : A
>>> func()

{}

从上述实例能够看出,可变参数 **kargs 运用时也能够关婷娜性感自由挑选要害字参海绵宝宝头像数的个女主请回头数,在函数运用时,函数会肿瘤医院生成一个字典(dict)来放置要害字参数,咱们在界说函数时只需要操作对应的字典字典即可,相同留意一个小细节,为何是运用字典?这相同也对应了要害字参数的方位可变性。

五、四种参数的混用

我谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论们在实践运用中,常常会用到这几种参数的调配运用,下面经过一个例子来解说这四种参数的混用状况。

def func(a, b="B", 谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论*args, c,**kargs):
print(a)
print谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论(b)
print(*args)
print(c)
print(kargs)
>>> func孕妈妈伤风咳嗽怎么办("A", "X", "Z", c="CC", d="DD", f="FF")
A
X
Z
CC
{'d': 'DD', 'f': 'FF'}
>>> func("A",c="CC")
A
B
CC
{}

从上述实例中能够谭松韵,Python 的四种同享传参详解-建模秘籍,软件建模、思维建模、模型制作方法论看出,咱们在混用时首要遵从两个准则

1.在函数界说时,次序为(方位参数,默许参数,*args 可变参数,要害字参数, **kargs 可变参数)。

2.在调用时,方位参数和要害参数必定要有,不行缺省,可变参数能够缺省。特别留意,假如界说了默许参数,又界说了 *args 可变参数,需留意方位参数的个数,由于函数调用默许会先辨认默许参数。上述实例中就有这种状况。

因作者个人水平有限,假如文章中有问题或许过错,请我们多多纠正,谢谢。森咲智美

“我自己是一名从事了多年开发的P葵ython老程序员,辞去职务现在在做自己的Pyt孙邦楠hon私家定制课程,今年年初我花了一个月收拾了一份最适合2019年学习的Python学习干货,从最根底的到各种结构都有收拾,送给每一位喜爱Python小伙伴,想要获取的能够转发枣阳气候文章并重视我的头条号。在后台私信我:01,即可免费获取。"

标签: 未定义标签
admin 14文章 0评论 主页

  用户登录