当前位置: Python基础教程 > 06-函数-b > 阅读正文

python函数缺省参数

2021.6.19.   818 次   957字

在python中, 函数的参数可以传递, 或者省略

当缺省参数时, 就使用默认参数, 这与其他语言的方法重载功能相似, 但原理不同

gl_list = [6,3,9]

gl_list.sort() #默认按照升序
print(gl_list)

gl_list.sort(reverse=True)  #降序
print(gl_list)

输出结果如下:

[3, 6, 9]
[9, 6, 3]

这是因为, 升序用的更多, 故把升序作为默认值, 需要降序时传递reverse参数

指定函数缺省默认值

在编写函数时, 应该指定默认值, 否则就无法使用缺省参数

def print_info(name, gender=True):  #在定义参数时指定
    """
    :param name: 班级上同学的名字
    :param gender: True 男, False 女
    """
    gender_text = "男生"

    if not gender:
        gender_text = "女生"
    print(name +"是"+ gender_text)

#假设班级男生居多, 则缺省时默认是男生
print_info("小明")
print_info("小红",False)

输出结果如下:

小明是男生
小红是女生

ps: 当一个参数有一个常见的值时, 可以设置为默认参数, 若参数不能确定, 不要缺省, 而是由外部传递

缺省值注意事项

①缺省参数必须定义在最后, 例如下面的定义是错误的

def print_info(name, gender=True, title):  #在定义参数时指定

应该把gender 和 title的位置调换

②此外, 对于多个缺省参数, 在调用时应该指定参数名

def print_info(name, title="", gender=True):  #在定义参数时指定
    """
    :param name: 班级上同学的名字
    :param gender: True 男, False 女
    """
    gender_text = "男生"

    if not gender:
        gender_text = "女生"
    print(title + name + "是" + gender_text)

#假设班级男生居多, 则缺省时默认是男生
print_info("小明")
print_info("小红",gender=False) #应该指定gender为False

#下面这个是错误的, False会被当成是title
#print_info("小红",False)

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群