ITPub博客

首页 > IT职业 > IT生活 > 数组在python中可以作为默认参数吗?

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

IT生活 作者:zyzqy 时间:2021-09-11 10:06:19 0 删除 编辑

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

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

# 正确的默认参数定义方式--> 位置参数在前,默认参数在后
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中作为默认参数的,这点小伙伴们一定不能弄错了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2332/viewspace-2831820/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    99
  • 访问量
    720