Python函数中传递任意数量的实参(77)

函数就好比是你厌倦了重复差不多内容的功能,这些功能都会耗费很多同样的代码。

为了简洁起见,可以把这些内容都封装为函数。这样,只要一行就可以实现原来很多行代码的功能。这些函数还可以根据传递的不同命令内容来决定具体函数的功能。这些命令内容叫参数。

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

python大大的图

我的图

这是一个制作比萨的函数,它需要接受很多配料,但你无法预先确定顾客要多少种配料。形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装在这个元组中。

Python能够处理使用一个值调用函数的情形,也能处理使用三个值来调用函数的情形。它以类似的方式处理不同的调用,注意,Python将实参封装到一个元组中,即便函数只收到一个值也是如此。

第八行直接规定要取出元组中的第一个和第二个元素,但是很明显在pepperoni这个元组中只有一个元素,因此会报错说元组索引超出范围。根本就没有toppings[1]这个元素嘛!

但是如果元组中元素确保大于等于2的时候就不会有这样的问题


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文为《爬着学Python》系列第十篇文章。 在实际操作中,可能函数是我们几乎唯一的实现操作的方式,这是因为函数能...
    SyPy阅读 10,907评论 0 8
  • 第1章 准备工作第2章 Python语法基础,IPython和Jupyter第3章 Python的数据结构、函数和...
    SeanCheney阅读 121,219评论 30 305
  • 不可抗力具有独特的魔力,它的力量摧枯拉朽。我小时候总做的一个梦,它一直都在预警着一件可怕的事情。这很奇妙,就好像到...
    DEBRAH阅读 1,930评论 0 0
  • 早就想写写咖啡了,总觉得这个东西太神奇,为什么味道如此清苦,却有这么多人钟爱? 第一次听到咖啡这个词,是识字以后,...
    慕卿苑阅读 3,408评论 8 0
  • 早晨上班路上,看到一行婚车,头车是一辆白色宝马740,寓意听说叫白头到老,后面清一色奥迪A6,我们这叫场面。不是我...
    小泥壶阅读 2,425评论 5 2