上一篇我们学习了位置参数和关键字参数,这一篇我们继续学习函数的参数
一、默认参数
我们在调用函数时,如果不指定某个参数,Python解释器会抛出异常。另外在某一类型调用时,某个参数的值基本上不变,只是偶尔需要改变这个参数值。那么我们可以将这个参数设置为默认参数,在调用函数时如果不指定这个参数,那么函数将使用其默认值。如果另外指定了这个默认参数,那么函数将使用其指定值。
def say_hello(name,age=18):
print('hello',name,'你',age,'岁了')
say_hello('Tom')
say_hello('Tom',20)
say_hello('Tom',age=22)
运行结果:
Hello Tom 你 18 岁了
Hello Tom 你 20 岁了
Hello Tom 你 22 岁了
上面程序中,say_hello()函数有2个参数,其中第2个为默认值参数,在调用say_hello()函数时:
- 传入一个参数say_hello(‘Tom’)时,会将实参值Tom传给形参name,age使用默认值。
- 传入两个参数say_hello(‘Tom’,20)时,会将实参值Tom传给name,20传给age,来替代age的默认值。
这里要注意,当定义的函数有默认值参数也有没默认值参数时,必须把没有默认值参数放在有默认值参数前面
def say_hello(age=18,name):
print('hello',name,'你',age,'岁了')
say_hello(Tom)
运行错误:
File "g:/老树Python/python38_3VScode/democode/T22.py", line 1
def say_hello(age=18, name):
^
SyntaxError: non-default argument follows default argument
结束语:
这一篇只写了默认参数,较为简单,因为将在下一篇,写可变参数。可变参数中的内容较多。需要单独的来写。