今天继续给大家介绍Python相关知识,本文主要内容是Python函数参数使用注意事项。
在上文Python函数详解(三)——函数的参数传递进阶中,我们学习了函数参数的进阶内容。今天,我们来学习函数的参数使用注意事项。
在使用Python的默认参数时,如果默认参数是列表等可变参数,那么可能存在一些问题。首先来看以下代码:
在理论上来讲,我们每次调用func()函数,都会得到[123],但是当我们第二次调用func()函数的时候,得到的结果却是[123,123]。
这是因为Python参数在定义的时候,ls可变参数的值就已经确定为[],当我们调用该函数时,会改变ls的值,因此在下次调用时,可变参数ls的值就不再是[]了,而是[123]了。
因此,我们在使用可变参数时,要尽可能的将可变参数的值设置为不可变的变量,比如数字类型、字符串类型、元组类型等等,避免发生类似问题。
对于可变参数和关键字参数,我们有时已经把要传递的参数传递给了一个元组、序列或者是一个字典,这时我们在调用函数时,无需把元组、序列和字典中的内容重新提取成不同的变量以调用。
函数参数分配示例如下:
从上图中可以看出,对于可变参数,我们可以把元组、序列和字典(字典时传入的是字典中的键)变量前面加一个星号,然后作为函数的可变参数来传入。
对于关键字参数,我们可以把可转化为关键字参数的字典变量前面加两个星号,然后当作关键字参数来向函数内传递。但是对于有些字典,无法转换成关键字参数时,使用这种方法就会报错。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200