Python中函数的参数可以分为位置参数,关键字参数和默认参数。下面我们一一来讲解。
位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都
必须和定义函数时保持一致。
实参和形参数量必须一致
在调用函数,指定的实际参数的数量,必须和形式参数的数量一致(传多传少都不行),否则 Python 解释器会抛出 TypeError 异常,并提示缺少必要的位置参数。
例如
例如,设计一个求梯形面积的函数,并利用此函数求上底为 4cm,下底为 3cm,高为 5cm 的梯形的面积。但如果交互高和下低参数的传入位置,计算结果将导致错误:
def area(upper_base,lower_bottom,height): return (upper_base+lower_bottom)*height/2 print("正确结果为:",area(4,3,5)) print("错误结果为:",area(4,5,3))
推荐学习《》
运行结果为:
正确结果为: 17.5 错误结果为: 13.5
关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。
# 定义一个函数 def girth(width , height): print("width: ", width) print("height: ", height) return 2 * (width + height) # 传统调用函数的方式,根据位置传入参数 print(girth(3.5, 4.8)) # 根据关键字参数来传入参数 print(girth(width = 3.5, height = 4.8)) # 使用关键字参数时可交换位置 print(girth(height = 4.8, width = 3.5)) # 部分使用关键字参数,部分使用位置参数 print(girth(3.5, height = 4.8))
默认参数 调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定义函数时设置的默认值。
定义带有默认值参数的函数,其语法格式如下:
def 函数名(...,形参名=默认值): 代码块
例如
# 为两个参数指定默认值 def say_hi(name = "孙悟空", message = "欢迎来到PHP中文网"): print(name, ", 您好") print("消息是:", message)