Python中方法和函式的區別


函式

一個函式是一段用於執行特定任務的程式碼塊,它擁有自己的作用域,並透過名稱呼叫。所有函式可以包含零個(無)引數或多個引數。退出時,函式可以返回一個或多個值,也可以不返回值。

基本函式語法

def functionName( arg1, arg2, ...):
   ...
   # Function_body
   ...

讓我們建立我們自己的(使用者)一個非常簡單的名為sum的函式(使用者可以隨意命名)。函式“sum”有兩個引數,分別稱為num1num2,並將返回傳遞給函式(sum)的引數之和。當我們使用值(引數)5和6呼叫函式(sum)時,它返回11。

def sum(num1, num2):
   return (num1 + num2)

輸出

>>> sum(5,6)
11

所以從上面可以看出,'return'語句從Python函式返回一個值。

函式允許我們實現程式碼的可重用性。函式有三種類型:

  • 內建函式(顧名思義,這些函式隨Python語言一起提供,例如,help() 用於尋求幫助,max() - 獲取最大值,type() - 用於返回物件的型別等等。)

  • 使用者自定義函式(這些是使用者建立以幫助他們的函式,就像我們上面建立的“sum”函式一樣)。

  • 匿名函式(也稱為lambda函式,與使用def關鍵字定義的普通函式不同,它們使用lambda關鍵字定義)。

方法

Python中的方法與函式有點類似,區別在於它與物件/類相關聯。Python中的方法與函式非常相似,但有兩個主要區別。

  • 方法隱式地用於呼叫它的物件。

  • 方法可以訪問類中包含的資料。

通用方法語法

class ClassName:
   def method_name():
      …………..
      # Method_body
      ………………

讓我們透過一個簡單的程式碼來了解方法:

 動態演示

class Pet(object):
   def my_method(self):
      print("I am a Cat")
cat = Pet()
cat.my_method()

輸出

I am a Cat

在上面的程式碼中,我們首先定義了類“Pet”。然後我們從這個藍圖建立了物件“cat”。接下來,我們使用物件(即cat)呼叫我們自定義的方法my_method。

Python中方法和函式的關鍵區別

在我們掌握了函式和方法的基本概念之後,讓我們重點介紹它們之間的關鍵區別:

  • 與函式不同,方法是在物件上呼叫的。像我們上面的例子一樣,我們在物件“cat”上呼叫我們的方法,即“my_method”,而函式“sum”則無需任何物件即可呼叫。此外,由於方法是在物件上呼叫的,因此它可以訪問物件內部的資料。

  • 與可以改變物件狀態的方法不同,Python函式不會這樣做,通常在物件上進行操作。

簡而言之,方法是屬於物件的函式。

更新於:2023年8月26日

3萬+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告