Python 2 documentation, 7.6. Function definitions提供了几种方法来检测调用者是否提供了可选参数。

首先,可以使用特殊的形参参数语法*。如果函数定义具有以单个*开头的形式参数,那么Python将使用不与先前形式参数(作为元组)匹配的任何位置参数填充该参数。如果函数定义具有以**开头的形式参数,那么Python将使用不与先前形式参数匹配的任何关键字参数填充该参数(如dict)。函数的实现可以检查这些参数的内容,以查找所需排序的任何“可选参数”。

例如,这里有一个函数opt_fun,它接受两个位置参数x1和x2,并寻找另一个名为“optional”的关键字参数。

>>> def opt_fun(x1, x2, *positional_parameters, **keyword_parameters):

... if ('optional' in keyword_parameters):

... print 'optional parameter found, it is ', keyword_parameters['optional']

... else:

... print 'no optional parameter, sorry'

...

>>> opt_fun(1, 2)

no optional parameter, sorry

>>> opt_fun(1,2, optional="yes")

optional parameter found, it is yes

>>> opt_fun(1,2, another="yes")

no optional parameter, sorry

第二,你可以提供默认参数值一些值,如None,调用者永远不会使用。如果参数具有此默认值,那么您知道调用方未指定该参数。如果参数有一个非默认值,你知道它来自调用者。

python中可选参数如何指定_Python可选参数相关推荐

  1. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  2. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  3. python中算法(sklearn)的最优超参数寻优:skopt贝叶斯搜索

    python中算法(sklearn)的最优超参数寻优:skopt贝叶斯搜索 Jeff Dean在ICML 2019上进行了有关AutoML的演讲,并将自动化分为4个级别 手动构造预测变量,不引入学习的 ...

  4. python中str和int区别_python中eval与int的区别浅析

    python中eval和int的区别是什么?下面给大家介绍一下: 1.eval()函数 eval(<字符串>)能够以Python表达式的方式解析并执行字符串,并将返回结果输出.eval() ...

  5. jq设置保留两位小数_如何实现python中format函数保留指定位数的小数?

    我们经常说我国人口有13亿,这13亿数字是一个近似数.在我们无法精确准确得到一个数字时,会选择是它的近似数.近似数即经过四舍五入.进一法或者去尾法等方法得到的一个与原始数据相差不大的一个数.之前小编向 ...

  6. python获取命令行参数_【整理】Python中如何获得并处理命令行参数

    运行Python脚本时,时常需要从命令行中传递一些参数到Python程序中,但是如何获得相应的传递进来的参数,以及如何解析这些参数,是很多人,包括最开始的我,所遇到的问题. 下面,就对此总结一下: 先 ...

  7. chatgpt赋能python:如何在Python中保存文件到指定文件夹

    如何在Python中保存文件到指定文件夹 如果您正在使用Python编写应用程序或脚本,您可能需要将输出保存到特定的文件夹中. 本文将介绍如何在Python中保存文件到指定文件夹. 使用os模块创建文 ...

  8. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  9. python中init函数详解_Python 中__init__函数以及参数self

    Java网站链接:Java全栈工程师 | 以实例驱动学习 | how2j.cn 1)class类包含: 类的属性:类中所涉及的变量 类的方法:类中函数 2) __init函数(方法) 1.带有两个下划 ...

最新文章

  1. 【Linux 内核】进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE )
  2. gitblit如何迁移入gitlab合并迁移_github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器...
  3. oracle rac常用的网络检查命令
  4. War-Driving(战争驾驶***)
  5. html有几个文件夹,关于webpack打包问题,怎么打包成多个文件夹,每个文件夹下有相应的html,js和css?...
  6. 漫步微积分十八——变化率问题
  7. 北师大版图形的旋转二教案_新北师大版八年级下册数学 《图形的旋转(2)》教案...
  8. 计算机软件和理论学什么,武汉大学计算机软件与理论考研科目有哪些?
  9. java嵌套类中的方法怎么调用_java类与嵌套嵌套后,怎么使用最外层的类建立对象后使用内部类的方法?...
  10. oracle如何查询排行第二,Oracle优化查询改写(第二章-给查询结果排序)
  11. 服务器.htaccess 详解,最新最全的 .htaccess 参数说明
  12. PR音频处理——收尾音乐
  13. android设备如何挂载sdcard(有些设备是自动挂载的)
  14. 踏进字节的那一瞬间,我泪目了,这457天的外包经历值了....
  15. PLY的LALR语法详细解释
  16. 笑死:Welcome to Skip Thompson's Homepage
  17. 微信小程序引用php函数,php微信小程序支付讲解(JSAPI)
  18. 考虑题4所示的日志记录_福建省厦门双十中学2016届高三上学期中考试地理【解析】...
  19. 大规模并行处理器编程实战笔记3
  20. 我们的程序员为何你月薪达不到30K,奈若何?

热门文章

  1. 同事的评价:你的思维跳跃性太大!
  2. Ceph新长支持稳定版本Luminous(12.x.x)新功能总结
  3. 量化对冲:智能对冲策略解析
  4. Python入门综合试题:猜大小
  5. Chrome 快速清理某个地址缓存
  6. win10 系统网络驱动出现黄色感叹号
  7. archetype-catalog
  8. In-memory Computing with SAP HANA读书笔记 - 第七章:Business continuity and resiliency for SAP HANA
  9. 杭州UI设培训学校哪家好
  10. FPGA系统性学习笔记连载_Day7【16位比较器设计】 【原理及verilog实现、仿真】篇