传递任意数量的实参

有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参

def get_letter(*letters):for i in letters:print(i)
get_letter('A','B','C','D','E')

形参名*letters中的星号让Python创建一个名为letters的空元组,并将收到的所有值都封装到这个元组中

结合使用位置实参和任意数量的实参

如果让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。

def get_letter(max_length,*letters):print("\nThe Maximum length is "+str(max_length))for i in letters:print(i)
get_letter(10,'A','B','C','D','E')

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

在不知道向函数传递的信息是什么样的情况下,还可以将函数编写能够接受任意数量的键-值对--调用语句提供多少就接受多少

def get_info(NM,**UserInfo):profile ={}profile['name'] = NMfor key,value in UserInfo.items():profile[key] = valuereturn profileuser_profile = get_info('zhangsan',sex = 'man',age = 23)
print(user_profile)

在get_info函数体内,我们创建了一个名为profile的空字典,用于存储用户的信息,我们先将NM存储到字典中,然后遍历UserInfo中的键值对,将每一个键-值存储在字典中。

总结

* UserInfo   元组

**UserInfo   字典

【Python】向函数传递任意数量的实参相关推荐

  1. Python:向函数传递任意数量的实参

    传递任意数量的实参 有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参 def get_letter(*letters):for i in letter ...

  2. 《Python编程从入门到实践》记录之Python函数传递任意数量的实参

    目录 1.传递任意数量的实参 2.结合使用位置实参和任意数量实参 3.使用任意数量的关键字实参(字典传递) 1.传递任意数量的实参 Python允许函数从调用语句中收集任意数量的实参,需要在函数定义时 ...

  3. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

  4. 实参可以是任意类型吗_传递任意数量的实参

    有时候你预先不知道函数需要接受多少个实参,好在python允许函数从调用语句中收集任意数量的实参. 例如来看一个制作比萨的函数,它需要接受很多配料,但你无法预先确定顾客需要多少种配料.下面的函数只有一 ...

  5. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  6. python在函数中传入多个实参

    python在函数中传入多个实参 def make_pizza(*toppings):print("-----------------")print(toppings)make_p ...

  7. python之函数传递,形式参数和实际参数

    python之函数传递,形式参数和实际参数. 1.函数的参数传递. 函数的参数传递有两种形式 第一种是值传递,经常见于int.str.float.bool型数据.指的是将实际参数的值复制给形式参数一份 ...

  8. python向函数传递列表,【Python】向函数传递列表

    向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字.数字.可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(frui ...

  9. Python入门--函数传递过程中实参的变化

    def fun(arg1,arg2):print('arg1=',arg1)print('arg2=', arg2)arg1=100;arg2.append(10)print('arg1=', arg ...

最新文章

  1. Visio绘制功能分解图
  2. java list加入listview_Android ListView自动生成列表条目的实例
  3. LeetCode 309. 最佳买卖股票时机含冷冻期(动态规划)
  4. 达摩院里的女Leader,一面温柔似水一面灿烂如阳
  5. 【十五分钟Talkshow】如何善用你的.NET开发环境
  6. y7000 安装linux双系统,联想拯救者Y7000安装双系统:win10 + ubuntu16.04 (GTX1060显卡)...
  7. 小米笔记本打开matlab,小米笔记本入手指南
  8. 产品经理面试必备常见问题及解析
  9. 学python必备的英语单词(终身受益)
  10. Android升级WebView浏览器内核版本
  11. 微软tfs项目管理工具_研究Project2010+TFS2010项目需求管理功能
  12. 我的世界java版幻翼_见到幻翼的方式是熬夜?这几个被忽略了
  13. mysql中的/、div的区别
  14. ios系统——先了解iCloud是什么吧
  15. stm32L1151用cube配置ADC
  16. 大数据之hive:行列转换系列总结
  17. 有Go语言实战培训班吗?go语言开发环境搭建
  18. 加密网络空间安全厂商“观成科技”获数千万A轮融资,方广资本领投
  19. xxl-job学习,基本测试1
  20. Java毕设项目电影评论网站系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. php去掉字符串的最后一个字符 substr()的用法
  2. 金融时报:谷歌撤离中国有99.9%的可能性
  3. MATLAB【十四】————调用深度库生成exe,批量运行三层文件夹下图片,保存结果
  4. SLAM的开源以及在移动端AR的适用分析
  5. Linux查看本机端口
  6. ecshop transport.js/run() error:undefined
  7. undefined reference to `libiconv_open 无法编译PHP libiconv
  8. 如何在.NET中创建服务型组件
  9. 死锁问题分析的利器——valgrind的DRD和Helgrind
  10. VC下提前注入进程的一些方法3——修改程序入口点