函數是有組織的,可重復使用的代碼,用于執行一個單一的,相關的動作的塊。函數為應用程序和代碼重用的高度提供了更好的模塊。
正如我們知道的,Python的print()等許多內置函數,但也可以創建自己的函數。這些函數稱為用戶定義函數。
定義一個函數
可以定義函數,以提供所需的功能。下面是簡單的規則來定義Python函數。
函數塊以開始關鍵字def后跟函數名和括號中(())。 任何輸入參數或參數應該放在這些括號內。還可以定義這些括號內的參數。 函數的第一個語句可以是??一個可選的聲明 - 該函數或文檔字符串的文檔字符串。 每個函數中的代碼塊以冒號(:)開頭并縮進。 該語句返回[表達式]退出功能,可選地傳遞回一個表達式給調用者。不帶參數return語句返回None。語法:
def functionname( parameters ): "function_docstring" function_suite return [expression]
默認情況下,參數具有一個位置的行為和需要,它們被定義為通知他們以相同的順序。
例子:
這是最簡單的Python函數形式。這個函數接受一個字符串作為輸入參數,并打印標準的屏幕上。
def printme( str ): "This prints a passed string into this function" print str return
調用函數
定義一個函數只給出它的名稱,指定要被包括在功能和結構的代碼塊的參數。
一旦函數的基本結構確定后,可以通過從其他函數或直接從Python提示符調用它執行它。以下是示例調用printme()函數:
#!/usr/bin/python# Function definition is heredef printme( str ): "This prints a passed string into this function" print str; return;# Now you can call printme functionprintme("I'm first call to user defined function!");printme("Again second call to the same function");
當執行上面的代碼中,產生以下結果:
I'm first call to user defined function!Again second call to the same function
引用VS值傳遞
所有參數(參數)在Python語言是通過引用傳遞。這意味著,如果你在一個函數中改變了一個參數的值,變化也反映了在調用函數中。例如:
#!/usr/bin/python# Function definition is heredef changeme( mylist ): "This changes a passed list into this function" mylist.append([1,2,3,4]); print "Values inside the function: ", mylist return# Now you can call changeme functionmylist = [10,20,30];changeme( mylist );print "Values outside the function: ", mylist
這里,我們保持傳遞的對象的參考,并在同一個對象附加的值。這樣,這將產生以下結果:
Values inside the function: [10, 20, 30, [1, 2, 3, 4]]Values outside the function: [10, 20, 30, [1, 2, 3, 4]]
新聞熱點
疑難解答