一、实参和形参
def greet_user(username): """显示简单的问候语,且显示用户名""" print("Hello!"+username) greet_user("Joker")
在上面代码中定义函数 greet_user()时,要求给变量username指定一个值。调用这个函数并提供这种信息(人名)时,它将打印带名字的问候语句。
在函数 greet_user() 的定义中,变量username 是一个形参---它表示函数完成其工作所需要的一项信息。在代码 greet_user('Joker') 中,值“Joker”
是一个实参。实参是在调用函数时传递给函数的信息。我们在调用函数时,需要将函数所需的信息放在括号内。在greet_user('Joker')中,将实参
‘Joker’ 传递给了函数greet_user() ,这个值被存储在形参username中。
二、位置实参
调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的形参。所以,实参与形参最简单的关联方式就是位置关联即实参顺序与形
参顺序一致,这种关联方式叫做位置实参。使用位置实参来调用函数时,如果实参的位置不正确,结果可能出乎意料。
三、关键字实参
def greet_user(username,age): """显示简单的问候语,且显示用户名""" print("Hello!"+username+",you are " + str(age) + " years old!" ) greet_user(age=18,username="Joker")
console:
关键字实参 是传递给函数的 名称-值对。如上面的代码,在调用函数时,在括号内使用A=B的形式 给形参赋值,
A为形参名,B为实参,这样传递参数可以不用关心传递参数的顺序,只需关心名称与值是否对应即可。
四、形参默认值
编写函数时可以给每个形参指定默认值。
def greet_user(username,age=18): """显示简单的问候语,且显示用户名""" print("Hello!"+username+",you are " + str(age) + " years old!" ) greet_user(username="Joker")
console:
我们给age 指定了默认值 18 ,我们调用时并没有传递age的实参,它也会默认给它18的实参,这就是age的默认值,
所以打印的信息还是和上面打印的信息一样。
五、避免实参错误
如果函数出现实参错误,traceback会指出问题出在什么地方,让我们可以去找到出错的地方进行更正。
def greet_user(username,age=18): """显示简单的问候语,且显示用户名""" print("Hello!"+username+",you are " + str(age) + " years old!" ) greet_user()
console:
因为有Traceback的存在所以可以让我们可以更好的去找到代码中是哪里的错误。
还没有对象?要不要给你介绍,一款不错的狗粮。