1. 程式人生 > 實用技巧 >nodejs.cn-Node.js-入門教程:使用 Node.js 傳送 HTTP 請求

nodejs.cn-Node.js-入門教程:使用 Node.js 傳送 HTTP 請求

函式是一種僅在呼叫時執行的程式碼塊。

您可以將資料(稱為引數)傳遞到函式中。

函式可以把資料作為結果返回。

建立函式

在 Python 中,使用def關鍵字定義函式:

例項

def my_function():
  print("Hello from a function")

呼叫函式

如需呼叫函式,請使用函式名稱後跟括號:

例項

def my_function():
  print("Hello from a function")

my_function()

執行例項

引數

資訊可以作為引數傳遞給函式。

引數在函式名後的括號內指定。您可以根據需要新增任意數量的引數,只需用逗號分隔即可。

下面的例子有一個帶引數(fname)的函式。當呼叫此函式時,我們傳遞一個名字,在函式內部使用它來列印全名:

例項

def my_function(fname):
  print(fname + " Gates")

my_function("Rory John")
my_function("Jennifer Katharine")
my_function("Phoebe Adele")

執行例項

預設引數值

下面的例子展示如何使用預設引數值。

如果我們呼叫了不帶引數的函式,則使用預設值:

例項

def my_function(country = "China"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

執行例項

以 List 傳參

您傳送到函式的引數可以是任何資料型別(字串、數字、列表、字典等),並且在函式內其將被視為相同資料型別。

例如,如果您將 List 作為引數傳送,它到達函式時仍將是 List(列表):

例項

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

執行例項

返回值

如需使函式返回值,請使用return語句:

例項

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

執行例項

關鍵字引數

您還可以使用 key = value 語法傳送引數。

引數的順序無關緊要。

例項

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

執行例項

在 Python 文件中,“關鍵字引數”一詞通常簡稱為 kwargs。

任意引數

如果您不知道將傳遞給您的函式多少個引數,請在函式定義的引數名稱前新增 *。

這樣,函式將接收一個引數元組,並可以相應地訪問各項:

例項

如果引數數目未知,請在引數名稱前新增 *:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Phoebe", "Jennifer", "Rory")

執行例項

pass 語句

函式定義不能為空,但是如果您出於某種原因寫了無內容的函式定義,請使用 pass 語句來避免錯誤。

例項

def myfunction:
  pass

執行例項

遞迴

Python 也接受函式遞迴,這意味著定義的函式能夠呼叫自身。

遞迴是一種常見的數學和程式設計概念。它意味著函式呼叫自身。這樣做的好處是可以迴圈訪問資料以達成結果。

開發人員應該非常小心遞迴,因為它可以很容易地編寫一個永不終止的,或者使用過量記憶體或處理器能力的函式。但是,在被正確編寫後,遞迴可能是一種非常有效且數學上優雅的程式設計方法。

在這個例子中,tri_recursion()是我們定義為呼叫自身 ("recurse") 的函式。我們使用 k 變數作為資料,每次遞迴時遞減(-1)。當條件不大於 0 時(比如當它為 0 時),遞迴結束。

對於新的開發人員來說,可能需要一些時間來搞清楚其工作原理,最好的方法是測試並修改它。

例項

遞迴的例子:

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)