码迷,mamicode.com
首页 > 编程语言 > 详细

python 函数参数

时间:2020-02-10 13:27:52      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:一个   方式   def   www   改变   赋值   lis   htm   永久   

https://www.cnblogs.com/aszeno/p/10384887.html

https://www.cnblogs.com/aszeno/p/10386149.html

链接中的文章讲的比较详细,简单概括一下:

 

1. 位置参数

函数调用时必须指定。 可以直接函数调用时给相应的位置赋值,或者通过关键字指定。 必须有实参。

2. 默认参数

在函数定义时已经指定了default 值。函数调用时可以不给这个参数赋值。

函数定义时所有的默认参数都必须在位置参数之后。

3. 关键字参数

这是指函数调用时指定了形参名字和实参值。即函数调用是通过argx=xxx 的形式给出。

4. 可变长度参数(参数组)

在函数定义时

*args 表示tuple 类型参数组。 但不表示调用时的参数为tuple, 只是表示调用时的参数格式为 argx,argy

**kwargs 表示字典类型参数组。但不表示调用时的参数要为dict. 只是表示调用时参数格式为  argx=xx,argy=yy

 函数调用时,

如果实参是tuple ,要将tuple 中的item 变成函数的可变参数,那么需要在tuple 前面加上*

如果实参是dict, 要将dict 中的item 变成函数的关键字参数,那么需要在dict 前面加上**

 

也就是说可变参数在调用时有两种方式:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{‘a‘: 1, ‘b‘: 2})。

 

注意:

函数定义时,可变长度参数必须在位置参数和默认参数之后。且字典类型的参数组必须是最后一个。

 

5. 列表/元组/字典 可以作为函数的参数(因为他们都是对象,对象可以作为单个变量传递给函数的)

当他们作为函数参数的时候 只能表示 函数的一个参数,而不是一组参数。在函数中可以对列表和字典的值进行修改。而且这种修改会让输入变量的值永久改变。

 如果要禁止函数修改列表的值:

#禁止函数修改列表
print_models(unprinted_designs[:],completed_models)

 

python 函数参数

标签:一个   方式   def   www   改变   赋值   lis   htm   永久   

原文地址:https://www.cnblogs.com/flymood/p/12290433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!