本节主要讨论函数调用时参数的实参问题。
1. 实参赋值顺序和型参定义顺序一一对应
Python在调用哪个子函数时,如果型参为多个,一般实参的排布顺序和型参顺序保持一致,即一一对应。我们以下面的代码为例来说明一下。
#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
w = int(raw_input("plz input width"))
h = int(raw_input("plz input heighnt"))
#call function area
area(w, h)
#entry of programme
main()
2.实参和型参不是一一对应
Python里允许函数调用时,实参的赋值顺序和型参定义顺序不一致,主要函数调用时明确的说明,那个值赋给那个型参即可,因此函数调用时括号里是表达式,实现实参和型参不一致赋值调用的语法结构如下:
function(argx = value1, argi = value2, argm = value3,...)
示例如下:
#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, width = 15)
#entry of programme
main()
思考一下如果去掉width=可行么?程序有问题么?
#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, 15)
#entry of programme
main()