打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python中的函数(5)

一、向函数中传递任意数量的实参

有时候,你预先不知道函数需要接受多少个实参,Python中函数可以收集任意数量的实参。

栗子:来看一个打印好友列表功能的函数,它需要接收任意数量的好友名。如下:

1 def print_friends(*friends):2 '''打印好友名'''3 print(friends)4 5 print_friends('jhson')6 print_friends('joker','jack','nacy')

console:

解释:上面的函数中只有一个形参  *friends,但不管调用语句提供多少实参,这个形参都能将它们统统收入囊中,

形参名 *friends 中的星号让Python创建一个名为friends的空元组,并将收到的所有值都放入这个元组中。函数体内

的print 语句通过生成输出来证明Python能够处理使用一个值调用函数的情形,也能处理使用三个值调用函数的情形。

它以类似的方式处理不同的调用,需要注意的是,函数将收到的值放入元组中,即使只有一个值也是如此。

我们改进下,用循环打印这个元组中的值:

1 def print_friends(*friends):2     '''打印好友名'''3     print('\nmy friends :')4     for friend in friends:5         print(friend)6     7 print_friends('jhson')8 print_friends('joker','jack','nacy')

console:

不管收到一个值还是三个值,这个函数都能妥善处理,其实不管函数实参是多少个,这种语法都管用。

二、使用任意数量的关键字实参

有时候,需要接收任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够

接收任意数量的键-值对,调用语句提供了多少就接收多少。

栗子:你知道你将收到有关用户的信息,但不确定是什么样的信息,如下:

1 def user_profile(first,last,**user_info): 2 '''创建一个字典,其中包含我们知道有关用户的一切''' 3 profile={} 4 profile['first_name'] = first 5 profile['last_name'] = last 6 for key ,value in user_info.items(): 7 profile[key] = value 8 return profile 9 10 user_profile = user_profile('joker','pan',sex='male',country='China')11 print(user_profile)

console:

解释:函数user_profile() 的定义要求提供名和姓,同时允许用户根据需要提供任意数量的名称-值对。形参中的**user_info中的两个星号,

让Python创建一个名为user_info的字典,并将收到的所有名称-值对都封装到这个字典中。在这个函数中像访问其他字典那样访问user_info

中的名称-值对。在这里不仅将名和姓传入函数,还将性别和所属国家也传入,该函数也能正确处理并返回包含用户信息的字典。

传递参数的方式有很多种,牢记使用最简单的方法来完成任务就好了。

世界很公平,比你忙的人赚的比你多,比你闲的人你赚的比他少。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python进阶系列(六)
5步教你搞清函数参数传递,就这么简单
给妹子讲python-S01E21函数参数的匹配与解包
python再谈函数
儿童节快乐:python基础变量赋值 | 为什么在python变量中copy()函数如此重要,普通的变量赋值隐藏着怎样的秘密?
python的generator
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服