默认参数值
在定义函数的时候我们需要使用默认参数值。可以在函数定义的形参名后加上赋值运算符=
和默认值,从而给形参指定默认参数值。
def say(message, times = 1):
print message * times
say('Hello')
say('World', 5)
运行结果:
Hello
WorldWorldWorldWorldWorld
关键参数
如果函数有许多参数,我们可以指定其中的一部分,我们使用参数的名字,而不是位置来给参数赋值。
这样做有两个优势 :
一,由于我们不必担心参数的顺序,使用函数变得更加简单了。
二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
def func(a, b=5, c=10):
print 'a is', a, 'and b is', b, 'and c is', c
func(3, 7)
func(25, c=24)
func(c=50, a=100)
运行结果:
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
这些名词听起来可能有些难理解,但是看到实例代码以后就明白是什么意思了。
return
语句
return
语句用来从一个函数返回即跳出函数。我们也可选从函数返回一个值 。
def maximum(x, y):
if x > y:
return x
else:
return y
print maximum(2, 3)
运行结果:
3
注意,没有返回值的
return
语句等价于return None
。None
是Python
中表示没有任何东西的特殊类型。例如,如果一个变量的值为None
,可以表示它没有值。
DocStrings
文档字符串很有用。
Python
有一个很奇妙的特性,称为文档字符串 ,它通常被简称为docstrings
。DocStrings
是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文档字符串!
def printMax(x, y):
'''Prints the maximum of two numbers.
The two values must be integers.'''
x = int(x) # convert to integers, if possible
y = int(y)
if x > y:
print x, 'is maximum'
else:
print y, 'is maximum'
printMax(3, 5)
print printMax.__doc__
运行结果:
5 is maximum
Prints the maximum of two numbers.
The two values must be integers.
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。强烈建议你在你的函数中使用文档字符串时遵循这个惯例。
你可以使用
__doc__
(注意双下划线)调用printMax
函数的文档字符串属性(属于函数的名称)。请记住Python
把 每一样东西 都作为对象,包括这个函数。我们会在后面的类一章学习更多关于对象的知识。自动化工具也可以以同样的方式从你的程序中提取文档。因此,我强烈建议你对你所写的任何正式函数编写文档字符串。随你的
Python
发行版附带的pydoc
命令,与help()
类似地使用DocStrings
。