Python读书笔记22(函数传递任意数量实参)

连小编都没想到一个小小的函数要分享这么多期~

当然,主要原因是!

不好意思,放错图了是!

今天和大家分享函数的最后一个部分,虾米呢?

前期有分享过传递一个实参,设置默认初始化的实参,变换位置的实参,某个列表作为实参,今天分享的是传递任意数量的实参!

我们先看这个案例

如果我们定义某个函数只有一个形参,输入多个实参的时候就会提示报错,因为Python要求除了有默认初始值的参数外,数量必须与函数定义的保持一致。

但是有时候工作中就是要输入未知个数的实参,怎么解决呢?

如果想让任意数量的实参都不报错,需要在形参定义的时候前面多个星号!

这样函数传递多少个参数进去都不会报错,此时实参传递进去的是什么东西呢?是以什么形式进行存储的呢?

我们将打印改为换返回这个形参,并且赋值给了list1变量,再用Type函数获取list1变量的数据类型。

发现返回值是tuple,证明这个list1参数的存储方式是元组。

其实看之前的Print值的时候我们已经可以看到所有的打印结果都是小括号括起来的,小括号括起来其实就是元组的意思。

所以如果定义函数的时候,形参前面多个星号,代表可以输入多个实参,在定义函数之时这个形参已经默认变量类型为元组;当调用函数时,多个参数以元组的形式赋值给形参!

接下来我们换个形式呈现一下这个函数

我们使用for循环语句打印里面的每个内容!

这个应用和传递一个列表进函数有虾米区别?

我们将列表改为元组呢?

条条大路通罗马噻~ 给你多个解决方案有咩问题!!!!

那如果我的函数是指定位置实参和任意数量实参混合应用呢?

我们需要将固定位置的放在前面,不定数量的放在后面,这样子Python可以按照先后顺序,将不同实参传递到函数之中!

当然参数传递还有更为复杂的方式,作为基础知识分享,及小编的个人感悟,分享到现在已经足够,最主要函数变量类型的灵活性让我们可以在调用函数的时候变得非常的随心所欲,无论后期遇到多复杂的应用,根据前几期分享的内容,基本上还是可以理解看懂的~

下期和大家分享类!

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿DD

第五章 正则表达式的拆分【修订】

本篇文章本不该存在,因小编的失误出现了一些错误,应作者要求,修正昨天同名文章的两处错误。 第五章 正则表达式的拆分 对于一门语言的掌握程度怎么样,可以有两个角度...

2026
来自专栏前端黑板报

一个数字截取引发的精度问题(三)

上次总结的第四条: 当传入的参数小于数字的整数位时,返回指数形式表示的字符串。 let numObj = 12345.6numObj.toPrecision(2...

2078
来自专栏从流域到海域

《Java程序设计基础》 第6章手记

本章主要内容: - 类的定义 - 成员变量和成员方法 - 类及成员的修饰符 - 对象的创建与使用 - 成员变量的访问与方法的...

2125
来自专栏Python小屋

Python中的偏函数和函数柯里化

偏函数(partial)和函数柯里化(currying)是函数式编程中常用的技术。有时候我们在复用已有函数时可能需要固定其中的部分参数,这除了可以通过默认值参数...

3154
来自专栏coding for love

ES6常用新特性学习2-展开运算符

展开运算符也是我平时在书写代码是经常用到的新特性,允许一个表达式在某处展开,主要适用于数组或者类数组的展开,他给我们的coding过程带来了极大的便捷。

1092
来自专栏xingoo, 一个梦想做发明家的程序员

Java程序员的日常——《编程思想》一切都是对象

今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思。从第二章开始,真正的开始讲解Java相关的内容,有了一...

19610
来自专栏韦弦的偶尔分享

Swift 最长公共前缀 - LeetCode

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

1223
来自专栏Vamei实验室

Python基础09 面向对象的进一步拓展

我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能实际运用对象和类。 调用类的其它信息 上一讲中提到,在定义方法时,必须有self这一参数。这个参数表示某个...

2027
来自专栏java工会

java枚举使用详解

2515
来自专栏JetpropelledSnake

Python入门之面向对象编程(一)面向对象概念及优点

本文分为如下几个部分 首先说明面向对象是什么,然后结合实际例子说明面向对象的如下几个优点 方便函数管理 数据封装 对象操作 最后总结一下面向对象的好处 概念...

3807

扫码关注云+社区

领取腾讯云代金券