默認參數值
在定義函數的時候我們需要使用默認參數值。可以在函數定義的形參名後加上賦值運算符=
和默認值,從而給形參指定默認參數值。
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
。