Win 10+Python 3.6.3

不管是什么参数,它们身处环境是:函数(function)。参数让函数如虎添翼,灵活、强大。
1、概念释义:

def func(x, y=2, *arg, *, z, **kwargs):#print(x, y)#print(len(arg), arg[0])print(kwargs)#func(1)
#func(y=3, x=4)
#func(1, 3, 4, 5)
d = {'a':1, 'b':2}
func(1, **d)

上述代码中:

  • 函数定义过程中的如 xy,称之为:形参(parameter);
  • 调用函数时(如 func(1))分别传递给xy的值 12,称之为:实参(argument)。是具体、实际的值;
  • 在函数调用(如 func(1))时,根据函数定义的参数位置来传递的参数 x,称之为:位置参数(也称 必选参数);它是缺一不可的,如果有多个位置参数,顺序得一一对应。
  • 在函数定义时,为形参 y赋 初始值,称之为:默认参数。即 定义了默认的值的参数。在调用函数时,可传也可不传该已赋初值的参数。不管在函数定义、还是调用,所有位置参数必须出现在默认参数之前。且默认参数一定要用不可变对象,否则运行时报错。使用默认参数能降低调用函数的难度。
  • 在函数定义时,带一个*号的参数(如 args),称之为:可变参数(传入的参数个数的可变的,0~n个)。它用于收集参数,接收的是一个元组 tuple(或列表 list)。如果可变参数后面还要加上其他定制的参数,那么在定义函数时,必须使用关键字参数(如 kwargs,前面带了两个 **号,接收的是一个字典 dict。在调用时,对其赋值,采用“键-值”形式,如d)来定制,否则Python会认为这些是可变参数。In other words,关键字参数参数允许传入0~n个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
  • 关键字参数的命名是不受限制的,但若要限制调用者传入的参数名,同时也可以提供默认值(可选的),这就是命名关键字参数(如 z)。在没有可变参数的情况下(有,则不用加*),必须加一个*号作为特殊分隔符,否则Python解释器无法识别位置参数和命名关键字参数。

2、参数组合:
在Python定义函数时,可使用位置参数、默认参数、可变参数、关键字参数、命名关键字参数,这5种都可以组合使用。但是,参数定义的顺序必须如下:调用时也得遵循

尽管可以组合多达5种参数,但是,不要同时使用太多组合,否则函数接口的可理解性将很差。

小结:
Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。定义函数时,将参数的名字、位置确定后,函数的接口定义就完成了。对于函数调用者而言,只需知道如何传递正确的参数、返回什么样的值就足够了,至于函数内部封装的复杂逻辑,调用者无需了解。

Python 3.X | 一文看懂不懵圈:位置参数(必选参数)、默认参数、可变参数、关键字参数、形参、实参...相关推荐

  1. ​【Python基础】一文看懂 Pandas 中的透视表

    作者:来源于读者投稿 出品:Python数据之道 一文看懂 Pandas 中的透视表 透视表在一种功能很强大的图表,用户可以从中读取到很多的信息.利用excel可以生成简单的透视表.本文中讲解的是如何 ...

  2. python运行程序-一文看懂python程序的执行过程

    本文主要介绍的是python程序的执行过程,首先介绍的是编译过程,其次介绍的是过程图解及编译字节码,最后介绍了codeobject对象的属性,具体的跟随小编一起来了解一下. 一.编译过程概述 当我们执 ...

  3. 牛顿法python代码_一文看懂牛顿法(附Python实现)

    这是一个数据分析师的在线笔试编程题:不能使用数学库函数,求出一个数的算术平方根 是不是看的一脸懵逼? 这里就需要用到一个很常用的求解方法了 -- 牛顿迭代法,也被称作牛顿法 (Newton's Met ...

  4. python读取excelsheet-一文看懂用Python读取Excel数据

    原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...

  5. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  6. 一文看懂Stacking!(含Python代码)

    一文看懂Stacking!(含Python代码) https://mp.weixin.qq.com/s/faQNTGgBZdZyyZscdhjwUQ 转载于:https://www.cnblogs.c ...

  7. 一文看懂Python collections模块的高效数据类型

    原作: George Seif, 发表于medium.com, 大江狗原创翻译, 并对原文稍作修改. Python的最大优势之一是其广泛的模块和软件包.这将Python的功能扩展到许多受欢迎的领域,包 ...

  8. 一文看懂Python 爬虫 进阶(三)

    一文看懂Python 爬虫 进阶(三) 文章目录 一文看懂Python 爬虫 进阶(三) **猫眼电影(xpath)** **链家二手房案例(xpath)** **百度贴吧图片抓取** 这篇几乎都是代 ...

  9. python进阶(小白也能看懂)——Map、Filter、Reduce

    python进阶(小白也能看懂)--Map.Filter.Reduce 第三篇 Map.Filter.Reduce是python中常用的函数,使用这些函数能够给我们带来很多便捷. Map map(fu ...

最新文章

  1. 删除win10自带的旧版edge浏览器(亲测有效)
  2. Android: Bundle机制
  3. 六:Cocos2d-x的CCLayer
  4. 【数据结构与算法】之深入解析“旋转链表”的求解思路与算法示例
  5. XHTML 相对路径与绝对路径
  6. 跟着“土牛”学架构知识
  7. C#LeetCode刷题之#257-二叉树的所有路径(Binary Tree Paths)
  8. 当拼多多开始打假 那么多“拼多多买家秀”竟都是假的?
  9. eclipse中添加svn插件
  10. iocomp iPlot使用说明13 Limits绘图界限
  11. Oracle P6培训系列:09定义计划编制视图
  12. 解二元一次方程组的c语言编程,如何利用C语言求二元一次方程的解
  13. 基于衰减因子和动态学习的改进樽海鞘群算法
  14. 第8章 Stata主成分分析与因子分析
  15. C语言实现简单的电子通讯录
  16. Windows主机和Linux主机之间连接网线共享网络上网设置
  17. iWork8 U80GT 平板安装Ubuntu Desktop 20.04 64位教程(理论适用所有Linux64位发行版)
  18. 突然间思考PID 有意思的地方-为什么说开环控制最优这句话也对也不对
  19. 刚入行java程序员VS 3年以上java程序员,太形象了,哈哈哈~·~
  20. deepin更新失败_更新失败

热门文章

  1. android 4g lte,Turn on 4G LTE Settings | 4G Mobile Network | csl
  2. 11-wtm附件管理
  3. minio安装与使用-win10
  4. 虚幻4渲染编程(重写渲染管线篇)【第一卷:从零开始推导PBR渲染模型---上】...
  5. .NET WebAPI 实现图片上传(包括附带参数上传图片)
  6. 读书笔记之-Analyzing Neural Time Series Data 1、2
  7. 张赐荣: 详解 Java 中的包装类型
  8. Java程序员怎样才能拿到年薪40万以上,从而告别重复的CRUD?
  9. Socket传输信息或文件
  10. c++第一次上机实验--2