Python 传递任意数量的实参
在定义函数的时候如果你不知道该函数在使用的时候要接收多少的实参怎么办?
好在python提供了可以接收任意数量的实参的操作。
# def sandwitch(*ingredents):
# print("The ingredient of the sandwitch including")
# for ingredent in ingredents:
# print(ingredent)
# sandwitch('cabbage','prock','beef')
# sandwitch('mutton','fish')
*ingredents 是定义一个名为 ingredents 的空元组,然后在函数被调用的时候将接收到的所有值(实参)放进该元组中,由此一来便实现了传递任意数量的实参的操作。 注:
当位置实参和任意数量的实参相结合使用时,要将接纳任意数量的实参的形参(元组)要放在最后面,因为Python会先匹配位置实参,然后将剩下的实参收集到最后一个形参(元组)中。
比如上面那个例子,还要加上尺寸size的话,函数的定义就应该如下
def sandwitch(size,*ingredents):
此外Python还提供了“使用任意数量的关键字实参 ”,简单地说就是可以将一个字典序作为形参。如下一个例子
def build_porfile(first,last,**user_info):
profile={}
profile['first_name']=first
profile['lase_name']=last
for key,value in user_info.items():
profile[key]=value
return profile user_info=build_porfile('albert','einstein',location='prinecton',field='physics') print(user_info)
其中形参中的 **user_info 定义的是一个空字典,并将在函数调用时收到的所有的 key和value封装到该字典中。
或者可以这样子理解,在接收任意数量的实参的定义中只需存入某一个值,所以用的是 一个“*” (元组),在任意数量的关键字实参时用到的是字典,需要存的是两个值 key和 value,所以是 double star。
以上的内容学习自《Python:从入门到实践》,挺好的一本书,可以作为基础入门的学习资料
Python 传递任意数量的实参的更多相关文章
- python传递任意数量的实参
1.传递任意的实参 def make(*test):#带*号 print(test) make("one")#传递一个实参 make("one","t ...
- 【Python】向函数传递任意数量的实参
传递任意数量的实参 有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参 def get_letter(*letters): for i in lette ...
- 函数的学习3——传递任意数量的实参&将函数存储在模块——参考Python编程从入门到实践
传递任意数量的实参 形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中: def make_pizza(*toppings): print("\nM ...
- 传递任意数量的实参*parameter&使用任意数量的关键字实参**parameter
1.*形参名(*parameter) 有时候我们不知道知道函数需要接受多少个实参,所以我们可以在形参名前加一个*,是让python创建一个名为parameter的空元组,并将收到的所有值都封装到这个元 ...
- python_传递任意数量的实参
'''def name(*args): #python创建一个空元组,将收到的所有值都封装在这个元组中 """打印所有姓名""" for i ...
- [ActionScript3.0] 传递任意数量的参数
function setAgument(a:int,...rest):void{ for(var i:int=0;i<rest.length;i++){ trace(rest[i]); }}se ...
- Python 构造一个可接受任意数量参数的函数
为了能让一个函数接受任意数量的位置参数,可以使用一个* 参数 在这个例子中,rest 是由所有其他位置参数组成的元组.然后我们在代码中把它当成了一个序列来进行后续的计算
- Python基础之可接受任意数量参数的函数
1. 可接受任意数量位置参数的函数 为了能让一个函数接受任意数量的位置参数,可以在参数部分使用“*”. def avg(first, *rest): return (first + sum(rest) ...
- 请写一个php函数,可以接受任意数量的参数
请写一个php函数,可以接受任意数量的参数 这是一道面试题.怎么写这个函数呢? function fun(......) { } ----------------------------------- ...
随机推荐
- 4~20mA
4~20mA电流输出芯片XTR111完整电路 0-5v转0-20ma和0-5v转4-20ma 压控恒流源电路 4-20mA电流环路发送器入门
- ldap服务备份与恢复
备份: cat ldap_backup.sh #!/bin/bash/usr/sbin/slapcat >/S3/openldap/openldap_backup_`date -d " ...
- 无旋转Treap简介
无旋转Treap是一个神奇的数据结构,能够支持插入,删除,查询k大,查询某个数的排名,查询前驱后继,支持各种区间操作和持久化.基于旋转的Treap无法实现区间反转等操作,但是无旋Treap可以轻易地支 ...
- 【python011--数组2】
一.从列表中获取元素 *跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表索引值是从0开始的 >>> member= ['尘封','冰点','无名',' ...
- 解决vi删除键和方向键奇怪的问题
sudo vi /etc/vim/vimrc.tiny 把 改为
- topcoder srm 684 div1
problem1 link 首先由$P$中任意两元素的绝对值得到集合$Q$.然后枚举$Q$中的每个元素作为集合$D$中的最大值$Max$,这样就能确定最后集合$D$中的最小值要大于等于$Min=\fr ...
- linux内核中的DMI是什么?
答: 桌面管理接口(Desktop Management Interface).是用来获取硬件信息的,在内核中有一个配置项CONFIG_DMI用来添加此功能到内核中!
- CF1131D tarjan,拓扑
题目链接 541div2 http://codeforces.com/contest/1131/problem/D 思路 给出n序列和m序列的相对大小关系 构造出最大值最小的序列 缩点+拓扑 小的向大 ...
- SpringBoot 使用okhttp3
1.添加pom.xml依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId& ...
- (转)Applications of Reinforcement Learning in Real World
Applications of Reinforcement Learning in Real World 2018-08-05 18:58:04 This blog is copied from: h ...