几种不同的参数

   在学习Python中,发现Python中规定了几种不同的传递参数的方式,这与之前学习的编程语言有所不同,于是对此做下记录。
   在Python中参数大致可分为位置参数、默认参数、关键字参数以及收集参数.
为便于理解,
位置参数包括不需传递参数的函数、位置参数、默认参数。
关键字参数单独分类
收集参数单独分类

不需传递参数的函数

位置参数

    位置参数是依据参数所处的位置进行传递的,这和我们经常使用函数的方法相近.

 如果传递参数的个数不与函数所定义的参数个数相一致就会弹出错误Exception has occurred: TypeError
func_two() missing 2 required positional arguments: 'age_1' and 'age_2'
,意为:发生了异常,类型有误.函数缺失了两个必要的位置参数.

默认参数

  在函数定义参数内给参数赋予一个值,即是默认参数.第二个参数可以选择不传入,而函数会选择传入默认参数.如果传入参数,则传入参数会覆盖默认参数.

关键字参数

  关键字参数和位置的参数的区别是:
实际传入参数是根据位置进行匹配形式参数.
而关键字参数在定义之初就已经与形式参数进行了匹配,匹配规则与位置无关.
这样做的好处尽可能保证参数匹配正确.

 但是关键字参数与位置参数进行混合传递的时候,关键字参数须在位置参数之后.
 而如果调用函数的方式是fun_four(14,age_2=16),则会报错:SyntaxError: positional argument follows keyword argument,意为:语法错误:位置参数跟在关键字参数之后.

收集参数

 事实上,在我学习过程中,老师称*args为收集参数,觉得译的挺标准的,就接着称之为收集参数.它也被翻译成可变参数、解包裹参数、魔法参数.在Python官方教程里它被称之为Arbitrary Argument Lists.

 收集参数须在参数前添加一个*号.然后参数可以都塞进tuple(元祖)里了.命名规范是*args.

 第二种收集参数是要之前添加两个星星.但是参数类型为dict.

不同参数混用问题

不同参数混用的情况下,最先是位置参数,之后是*args,之后是关键字参数,之后是**keyargs

以下可能是对您有用的链接

python的位置参数、默认参数、关键字参数、可变参数区别

Python函数官方教程

pythontips

https://www.python.org/

分类: python

发表评论

电子邮件地址不会被公开。 必填项已用*标注