尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Python函数默认参数设置

Python函数默认参数设置 我们清楚, 于调用函数之际, 要是未指定某一参数, 解释器会抛出异常。为处理此问题, 允许给参数设定默认值, 也就是在定义函数之时, 直接给形式参数赋予一个默认值, 如此一来, 哪怕调用函数时未给具备默认值的形参传递参数, 该参数能够直接运用定义函数时设置的默认值。定义带有默认值参数的函数其语法格式如下def 函数名(...形参名默认值) 代码块留意一下, 于运用这种格式去定义函数之际, 指定了具备默认值的形式参数, 一定要在所有没有默认值的参数的末尾位置, 不然的话, 就会出现语法错误。例如如下程序为 name、 形参指定了默认值# 为两个参数指定默认值 def say_hi(name 孙悟空, message 欢迎来到C语言中文网): print(name, , 您好) print(消息是, message) # 全部使用默认参数 say_hi() # 只有message参数使用默认值 say_hi(白骨精) # 两个参数都不使用默认值 say_hi(白骨精, 欢迎学习Python) # 只有name参数使用默认值 say_hi(message 欢迎学习Python)运行结果为孙悟空 , 您好 消息是 欢迎来到C语言中文网 白骨精 , 您好 消息是 欢迎来到C语言中文网 白骨精 , 您好 消息是 欢迎学习Python 孙悟空 , 您好 消息是 欢迎学习Python在上面的程序当中能够看出, 要是仅仅传入一个位置参数, 鉴于这个参数处在第一位, 系统就会把该参数的值传递给name这个参数。所以, 是不可以按照如下这种方式来调用()函数的:say_hi(欢迎学习Python)上面进行调用之际, 所传入的“欢迎学习”这个字符串, 将会传递给 name 参数, 而非其他参数。更不能按如下方式来调用 () 函数say_hi(name白骨精, 欢迎学习Python)之所以会这样, 是由于有着明确规定, 那就是关键字参数它要求必须处在位置参数的往后的位置上, 所以才会出现提示错误的情况, 就是这样。那么能不能单纯地将上面两个参数交换位置呢say_hi(欢迎学习Python , name白骨精)上头进行的调用仍旧是有误的, 只因起初的那个字符串未指定关键字参数, 所以会运用位置参数给 name 参数传递参数值, 第二个参数以关键字参数的样式再次给 name 参数传递参数值, 这表明两个参数值实际上都会被传至 name 参数, 程序朝 name 参数传递了多个参数值。为此给出错误提示: () 得到了 给到了 name。将函数调用改为如下两种形式是正确的say_hi(白骨精, message欢迎学习Python) say_hi(name白骨精, message欢迎学习Python)第一行代码之上, 先借由位置 参数, 为 name 参数送去参数值, 而后借助关键字 参数, 为参数给予参数值。第二行代码里头, name、参数皆借由关键字参数, 传入参数值。再度着重说明, 鉴于调用函数之际关键字参数得处在位置参数的后边, 所以定义函数之时设定了默认值的参数也就是关键字参数必然要在没有默认值的参数的后面, 比如像下面所呈现的代码:def printTriangle(char, heigth5): for i in range(1, heigth 1): for j in range(heigth - 1): print( , end) for j in range(2 * i - 1): print(char, end) print() printTriangle(, 6) printTriangle(char*)在上面的程序之中, 定义了这样的函数, 在这个函数里面, 存在着带有默认值的形参, 而这个带有默认值的形参, 必须要放置于char形参的后面才行与之相反, 如果没有按此放置, 那么就将会导致出现语法错误。在其中, 能够运用“函数名.”去查看函数的默认值参数的当下值, 其返回的值是一个元组。举例来说, 要展示上面所定义的函数的默认值参数的当前值, 可要使用 “.” , 其得出的结果为 (5,)。
返回列表