概述

Python3中函数参数一般都是通过赋值进行传递的,而调用者只需要知道如何正确的传递参数即可直接使用函数,

位置参数

即我们使用最频繁的参数传递方法,通过参数的默认位置从左到右进行匹配

def f(x, y, z):print(x, y, z)f(1, 2, 3)
复制代码

示例结果:

1 2 3
复制代码

关键词参数

我们可以通过函数参数关键字进行参数传递,此时参数的传递是通过变量名匹配,而不是位置的方式匹配,所以在我们在使用混合的基于位置的参数和基于关键字的参数传递的原则就是,先基于位置的参数从左到右进行匹配,然后在基于变量名进行关键字的匹配。

def f(x, y, z):print(x, y, z)# 关键字匹配
f(x=1, y=2, z=3)
# 无需位置的匹配
f(y=2, z=3, x=1)
# 位置与关键字的混合匹配
f(1, z=3, y=2)
复制代码

示例结果:

1 2 3
1 2 3
1 2 3
复制代码

默认参数

当我们在传递参数时,有些参数总是默认的时候,即如果没有传入值的话,在函数运行之前,这些参数就被赋予了默认值,这也是我们在函数定义时经常使用参数定义方式

def f(x, y=2, z=3):print(x, y, z)# 仅传递非默认参数
f(1)
# 同样可以进行位置参数的传递
f(1, 2, 3)
# 传递关键字参数
f(1, y=4, z=5)
复制代码

示例结果:

1 2 3
1 2 3
1 4 5
复制代码

转载于:https://juejin.im/post/5cfa5ca6f265da1b725bf425

Python函数参数匹配模型(上)相关推荐

  1. 参数匹配模型——Python学习之参数(二)

    参数匹配模型--Python学习之参数(二) 文章目录 参数匹配模型--Python学习之参数(二) 位置参数:从左至右进行匹配 关键字参数:通过参数名进行匹配 默认参数:为没有传入值的参数定义参数值 ...

  2. python函数参数定义_python函数定义中的5种参数

    python函数参数定义 Python函数定义中的5种参数类型: (5 Types of Arguments in Python Function Definition:) default argum ...

  3. [转载] python 函数参数类型检查

    参考链接: Python函数参数 在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里. 我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参 ...

  4. python函数参数*arg和**kwargs分别代表什么?

    python函数参数*arg和**kwargs分别代表什么? 注意: 注意:参数arg.*args.**kwargs三个参数的位置必须是一定的.必须是(arg,*args,**kwargs)这个顺序, ...

  5. python函数参数定义不合法_下列哪种函式参数定义不合法?

    python 函数参数定义有四类: 1,必选参数:调用函数时候必须赋值的参数. a,须以正确的顺序传入函数 b,调用时的数量必须和声明时的一样 def exa(x): return x #b作为参数进 ...

  6. python 函数参数 (必选参数、默认参数、可选参数、关键字参数)

    默认参数增加 (x=None), if x: 能选择是否执行对x的操作 参考文章:python 函数参数(必选参数.默认参数.可选参数.关键字参数)

  7. Python函数参数学习

    Python函数参数笔记(简) --位置参数[必选参数] 指一般参数 --默认参数 指带一个默认值的参数 --可变参数(自动组装成一个tuple)     def calc(*num):        ...

  8. python函数参数类型及顺序_python函数参数类型及其顺序

    根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...

  9. python函数参数类型及其顺序

    根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...

最新文章

  1. get_headers()请求https报错解决思路
  2. python对文件的读操作方法有哪些-Python中文件的读取和写入操作
  3. 文思海辉口碑很差_文思海辉·金融打造全自动、100%话务覆盖的智能质检系统
  4. 阿里云服务器购买后的配置指南
  5. 关于mysql的wait_timeout参数 设置不生效的问题
  6. LeetCode 492. 构造矩形
  7. 面试官 | 说一下 JVM 常用参数有哪些?
  8. java循环语句_循环你都学会了,那if不是so easy了嘛
  9. iCloud 照片如何转移至谷歌相册?
  10. 【HTML5】Web前端——制作 3D 旋转魔方相册
  11. java开发基础知识学习总结
  12. Vue-cli3.x中使用Axios发送跨域请求的配置方法
  13. SLAM导航机器人零基础实战系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比...
  14. 垦丁小吃:一碗150元台币的芒果冰
  15. prototype鼠标指针_html5鼠标点击页面光标圆点动画特效
  16. Cisco Visio Stencil 实体图标下载
  17. oracle11g更改SID-DBname
  18. 遗传算法(GA/NSGA)优化神经网络 GA-BP
  19. python 英文语义分析_spinrewriter英文伪原创工具,Python对接API示例
  20. 什么是企业邮箱星标联系人?

热门文章

  1. 小冰和她的兄弟姐妹们组团出道:唱歌跳舞写文章样样都会,而且都开放版权...
  2. 机器人学会对自己下手了,螺丝松了自己拧
  3. #第六次会议#(4.21)
  4. java-数组排序--冒泡排序、鸡尾酒排序、地精排序
  5. WPF中如何将ListViewItem双击事件绑定到Command
  6. android--------Socket的简单了解
  7. 设计原则——依赖倒置
  8. 一个供应商只允许一个报价单
  9. 5G 信令流程 — 5GC 的移动性管理(MM,Mobility Management)
  10. 阿里云服务器买了,如何建站呀?