我是靠谱客的博主 愤怒樱桃,最近开发中收集的这篇文章主要介绍python中的参数传递顺序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1:def func(name)

在调用是,可以通过位置传递给name,也可以通过关键字传递给name值,

Func(“xiaoming”)   或者  func(name=“xiaoming”)

 

2: def func(name=value)

默认值参数,假设在调用函数时,没有传递给name值,那么name经使用默认值,这里的name仍然可以通过位置和关键字传递值

 

3: def func(*name)

在函数调用时,那么收集任何,没有被显式匹配的非关键字参数

(注,只能匹配没有被显式匹配的参数,如果非关键字参数在传入时,已经匹配给了某个参数,则此参数就不在那么集合中)

deffunc(a,*name):print a,name

func(a=1,2,3,4)或者,func(1,2,3,4),  name只能匹配 2,3,4

 

4 def func(**name)

在函数调用时,name收集任何没有被匹配的关键参数

 

5   def func(*args,name)  或者 def func(*,name=value)  # 3.0

在参数传递时,必须以关键参数的形式将参数传递给name,即kword-only

 

6

顺序:

函数定义:

1,  位置参数  2,默认参数  3*name参数  4kwork-only参数  5**name参数

 

参数传递顺序,即调用者将参数传递给函数的顺序:

1,  非关键字位置参数,2,关键字参数

 

匹配顺序:

1,  首先匹配位置参数,将非关键参数按照位置匹配给位置参数,将前几个参数对号入座,

2,  关键字参数,按照后面的关键字的定义,一个个的对号入座

优先级问题:假设非关键字参数传递给函数后,函数能够接受非关键字参数的参数有:

1,  位置参数  2,默认参数  3*name参数

那么非关键字参数首先匹配位置参数,其次匹配默认参数,剩余的匹配*name

 

func(a,b,c=valume1,d=value2,*args,kwonly,**kwargs):

printa,b,c,d,name,args,kwonly,kwargs

 

 

 

 

 

 

最后

以上就是愤怒樱桃为你收集整理的python中的参数传递顺序的全部内容,希望文章能够帮你解决python中的参数传递顺序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部