例子2:
在例子1中 , 默认参数是一个列表,它是mutable的数据类型,当它写进 __defauts__属性中时 , 函数addItem的操作并不会改变它的id , 相当于 __defauts__只是保存了data的引用,对于它的内存数据并不关心,每次调用addItem , 都可以修改 addItem.__defauts__中的数据,它是一个共享数据 。
如果默认参数是一个imutable类型,情况将会不一样,你无法改变默认参数第一次存入的值 。
例子1中,连续调用addItem('world') 的结果会是
而不是期望的
Python笔记:命令行参数解析有些时候我们需要通过命令行将参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt() 。python也提供了比getopt()更简洁的argparse方法 。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍 。
sys.argv是传入的参数列表,sys.argv[0]是当前python脚本的名称,sys.argv[1]表示第一个参数,以此类推 。
命令行运行:
可以看到传入的参数通过sys.argv来获?。?它就是一个参数列表 。
python的getopt与C语言的的getopt()函数类似 。相比于sys模块 , 支持长参数和短参数 , 并对参数解析赋值 。但它需要结合sys模块进行参数解析 , 语法格式如下:
短参数为单个英文字母 , 如果必须赋值需要在后面加英文冒号(:),长参数一般为字符串(相比短参数 , 更能说明参数含义) , 如果必须赋值需要在后面加等号(=) 。
命令行运行:
注意:短参数(options)和长参数(long_options)不需要一一对应,可以任意顺序,也可以只有短参数或者只有长参数 。
argparse模块提供了很多可以设置的参数,例如参数的默认值 , 帮助消息,参数的数据类型等 。argparse类主要包括ArgumentParser、add_argument和parse_args三个方法 。
下面介绍这三个函数的使用方法 。
argparse默认提供了-h | --help参数:
命令行运行:
下面列出部分参数:
下面来添加参数:
命令行运行:
parse_args() 方法用于解析参数 , 在前面的示例代码中使用parse_args方法来提取参数值,对于无效或者错误的参数会打印错误信息和帮助信息:
命令行运行:
本文介绍了Python的三种命令行参数解析方法sys.argv、getopt和argparse,可以根据自己的需要进行选择 , getopt和argparse两种方法相比来说,建议选择argparse,代码量更少更简洁 。更详细的使用方法参考官方文档:
--THE END--
python获取函数参数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于python读取参数、python获取函数参数的信息别忘了在本站进行查找喔 。
推荐阅读
- 视频号直播流水怎么报白,视频号直播怎么扣税
- jquery让字体颜色,jquery字体颜色的英文是什么
- 色的小游戏益智,益智闯关小游戏
- edge用HTML5的简单介绍
- c语言汉字的函数库 c语言汉字的数据类型
- hkc电视怎么放全屏,hkc电视怎样设置投屏
- flutter计算两点之前宽度,flutter 锚点
- php增加数据库表数据 php创建数据库
- pg数据库创建表分区,数据库创建分区函数