在python3.8之后函数参数中允许出现/和*号,/用来指明某些函数形参必须使用位置参数而非关键字参数的形式,*出现在函数参数中第一种含义可以表示为可变参数,一般写作*args;对于单独出现在参数中的*参数,则表示,*后面的参数必须为关键字参数的形式,接下来详细说下该用法:

1 /参数的用法

如果你想要函数的调用者在某个参数位置只能使用位置参数而不能使用关键字参数传参,那么你只需要在所需位置后面放置一个/。

def f1(a, b, /):

return a + b

对于上面这个函数而言,调用f1时参数a,b只能是特定的值,而不能以关键字传参,即f1(2, 3)执行正确而f1(a=2, 3)和f1(2, b=3)将执行错误。

2 *参数的用法

对于*的第一种用法比较常见,这里不再详述,这里主要详细解释*的第二种用法。如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。

def f1(a, *, b, c):

return a + b + c

对于上面这个函数而言,调用时参数a可以任意值, 但b,c参数一定要以关键字参数的形式传参,如f1(1, b=4, c=5),否则将会报错。

def f2(a, *, b, c=5):

return a + b + c

如果是这种情况下调用函数,参数a可以任意值,但参数b一定要以关键字参数的形式传参,如f2(2, b=3),但是如果想传入c参数,那么c参数的要求和b参数一样都为关键字参数形式,如f2(2,b=3,c=4)。

3 /和*都出现在函数参数中

比如我们定义一个函数f

def f(a, b, /, c, *, d, e):

print(a, b, c, d, e)

当我们调用函数f时,a,b参数可以为任意型python所支持的值,就是不能以关键字形式传参;c可以为任意型python所支持的值,d,e只能以关键字参数传参。以下调用方式均会抛出异常

f(a=1, 2, c=3, d=4, e=5) # a不能以关键字参数传参

f(1, 2, 3, 4, e=5) # d只能以关键字参数传参

4 总结

如果你希望调用者使用函数时一定不能使用关键字参数传参,那么只需要把这些参数放在/前即可;如果你希望调用者使用函数时一定要使用某些参数,且必须为关键字参数传参,那么只需要把这些参数放在*后面即可。

python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?相关推荐

  1. python函数定义中参数列表里的参数是_python-函数(def)参数 及参数解构 变量 知识整理...

    函数 python 函数 由若干语句组成的语句块.函数名称.参数列表构成,他是组织代码的最小单元 完成一定的功能 函数的作用: 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的是为 ...

  2. python函数定义中参数列表里的参数是_详解Python函数中参数带星号是什么意思

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

  3. python如何创建函数对列表里的元素进行分类_zip()函数如何在python中遍历多个列表?...

    在对列表的元素进行找寻时,会频繁的说到遍历的理念.对于复杂的遍历要求,如多个列表中查找就显然不适合用for循环.本篇所要带来的是zip() 函数的方法,能够对多个迭代器进行遍历.下面我们就python ...

  4. 在python中对于函数定义代码的理解正确的理解是_Python 5 函数

    一.判断题(共10小题,10分) 在Python中,自定义函数的关键字是def.(1分) A.对 B.错 参考答案: A 形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了.(1分) ...

  5. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)

    每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...

  6. python内置函数用来返回列表、元组、字典_python程序设计第一章基础知识 题库及选解...

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 填空 1. Python安装扩展库常用的是()工具.(pip) 2. Python标准库m ...

  7. python turtle绘图中角度坐标系的绝对零度方向是_python turtle绘图中角度坐标系的绝对零度方向是_程序员也有春天,母亲节用python画朵玫瑰送给妈妈......

    又到一年母亲节,先祝福所有妈妈节日快乐,哈哈.最近一个项目在用python,想着这次不用java了,用python给妈妈个礼物吧.Turtle库是Python语言中一个非常强大的绘制图像的函数库,她提 ...

  8. spyder 怎么看函数定义_看漫画学C++035:自定义函数(1)

    点击蓝字 关注我们 本话内容 请输入 计算中编程中的函数可以理解为是一种子程序,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成.它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性 ...

  9. python函数定义中参数列表里的参数是_python函数定义中的参数说明

    原博文 2020-05-23 07:50 − > 描述函数定义时 涉及到的 位置参数,默认参数,关键字参数,可变参数等的概念及用法 ## 1 示例代码 ``` #! /usr/bin/env p ...

最新文章

  1. python django 的启动脚本
  2. initrd镜像文件的作用与制作
  3. c#:mysql高效查询_C# LLSQL快速查询框架
  4. SAP MM ‘Pricing Date Control‘字段的理解
  5. 蚁群算法(Ant Colony Optimization,ACO)介绍及MATLAB代码(求解旅行商问题TSP)
  6. JavaScript统计图表插件 Echarts
  7. STM32C8T6+面板板+3只LED点亮流水灯
  8. 10种人脉裂变技能,6个裂变核心,8个吸粉人性本能怎样玩粉丝裂变?
  9. c语言流水灯程序 16,16个发光二极管流水灯程序
  10. QNAP(威联通)联合创始人郭博达先生一行到访
  11. html合并单元格怎么把字竖着,电脑excel单元格中文字如何在合并单元格后竖排显示...
  12. centos7.4下Jira6环境部署及破解操作记录(完整版)
  13. Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)
  14. 23 PPT图表链接和动画
  15. 使用HTML制作简单的新闻页面
  16. 企企通助力浙江哈尔斯,构建智慧供应链管理企业
  17. opencv-python不规则多边形 ROI提取
  18. DCG集团公布仓位,ETC成为投资重点
  19. MATLAB多种函数
  20. [简单逻辑学]逻辑学的基本原理——条件论证

热门文章

  1. MySQL数据库变量_数据库参数_MySQL变量_系统变量_用户变量
  2. Linux 命令之 eval -- 对参数执行两次解释
  3. Linux 命令之 iwconfig 命令-配置无线网络接口
  4. php恒等符,php学习笔记(三)操作符与控制结构
  5. linux dd iflag oflag,centos – dd oflag =直接5倍速
  6. php扩展 waf,基于PHP扩展的WAF实现
  7. 8条嵌入式C语言编程小知识总结
  8. 联想小新300加固态_就联想小新 Pro 13 固态硬盘混用一事,官方回应
  9. c++ 反射_固体火箭发动机黏接壳体超声C扫描检测系统研制与应用
  10. java 6 基础教程_Java小白入门教程(6)——循环语句