数组在python中可以作为默认参数吗?

827次阅读
没有评论

数组在python中可以作为默认参数吗?

还记得之前我们为了使用功能避免进行多次操作,可以选择构建一个框架,框架的功能定义好后就可以直接使用了,同样我们的参数也可以这样定义。在函数调用参数之前,我们就可以给参数赋予值,调用的时候就会自动显示,也省去了我们每次输入的麻烦。那么,我们所学的数组可以作为默认参数吗?接下来我们就一起探讨一下。

默认参数用于定义函数,为参数提供默认值,调用函数时可传可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)

# 正确的默认参数定义方式--> 位置参数在前,默认参数在后
def print_hello(name, sex=1):
    ....
 
# 错误的定义方式
def print_hello(sex=1, name):
    ....
 
# 调用时不传sex的值,则使用默认值1
# print_hello('tanggu')
 
# 调用时传入sex的值,并指定为2
# print_hello('tanggu', 2)

在使用默认参数的时候要特别注意的一点是,默认参数必须要指向不可变对象,比如数组、字典这些都是可变对象,是不能被用作默认参数的,至于为什么,这里不细说了,大家先记住就好,看下面这个例子。

#默认参数,注意不能使用list或dict等作为默认参数
 
def defaultParams(m=1,n=100):
    sum = 0
    for i in range(m,n+1):
        sum += i
    print(sum)
    return sum
 
 
#如果使用list数组来作为默认参数,多次调用函数的返回值会发生变化,在使用过程要特别注意
 
def defaultParamsTemp(list=[]):
    list.append(9)
    print(list)
    return list
 
defaultParams(1,3)
defaultParamsTemp()
defaultParamsTemp()
defaultParamsTemp()
6
[9]
[9, 9]
[9, 9, 9]

 

通过我们对于默认参数基础知识的了解,因为数组是可变的,而只有不可变对象才能作为默认参数,所以数组是不能在python中作为默认参数的,这点小伙伴们一定不能弄错了。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-17发表,共计953字。
新手QQ群:570568346,欢迎进群讨论 Python51学习