Computer >> Máy Tính >  >> Lập trình >> Python

Sự khác biệt giữa Phương thức và Hàm trong Python

Chức năng

Hàm là một khối mã để thực hiện một nhiệm vụ cụ thể, sẽ chứa phạm vi riêng của nó và được gọi theo tên. Tất cả các hàm có thể chứa không (không) đối số hoặc nhiều hơn một đối số. Khi thoát, một hàm có thể hoặc không thể trả về một hoặc nhiều giá trị.

Cú pháp hàm cơ bản

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

Hãy tạo (người dùng) của riêng chúng tôi, một chức năng rất đơn giản được gọi là sum (người dùng có thể đặt bất kỳ tên nào anh ta muốn) ”. Hàm “sum” có hai đối số được gọi là num1 và num2 và sẽ trả về tổng các đối số được truyền cho hàm (sum). Khi chúng ta gọi hàm (sum) với các giá trị (đối số) 5 và 6, nó trả về 11.

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

Đầu ra

>>> sum(5,6)
11

Vì vậy, từ phía trên, chúng ta thấy câu lệnh ‘return’ trả về một giá trị từ hàm python.

Chức năng cho phép chúng tôi thực hiện khả năng tái sử dụng mã. Có ba loại chức năng -

  • Các hàm tích hợp sẵn (Như tên cho thấy, các hàm này đi kèm với ngôn ngữ Python, ví dụ:help () để yêu cầu bất kỳ trợ giúp nào, max () - để nhận giá trị lớn nhất, gõ () - để trả về kiểu của một đối tượng và nhiều hơn nữa.)

  • Các hàm do người dùng xác định (Đây là các hàm mà người dùng tạo để trợ giúp họ, giống như hàm “sum” mà chúng tôi đã tạo ở trên).

  • Hàm ẩn danh (còn được gọi là hàm lambda và không giống như hàm bình thường được xác định bằng cách sử dụng def từ khóa được xác định bằng cách sử dụng lambda từ khóa).

Phương pháp

Một phương thức trong python hơi giống với một hàm, ngoại trừ nó được liên kết với đối tượng / các lớp. Các phương thức trong python rất giống với các hàm ngoại trừ hai điểm khác biệt chính.

  • Phương thức được sử dụng ngầm định cho một đối tượng mà nó được gọi.

  • Phương thức này có thể truy cập vào dữ liệu được chứa trong lớp.

Cú pháp phương pháp chung

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

Hãy hiểu phương pháp này qua một đoạn mã đơn giản -

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

Đầu ra

I am a Cat

Trong đoạn mã trên, đầu tiên chúng ta đã định nghĩa lớp "Pet". Sau đó, chúng tôi tạo đối tượng “con mèo” từ bản thiết kế này. Tiếp theo, chúng tôi gọi phương thức tùy chỉnh của chúng tôi có tên là my_method với đối tượng (.i.e. Cat).

Sự khác biệt chính giữa phương thức và hàm trong python

Khi chúng ta hiểu cơ bản về cả hàm và phương pháp, hãy làm nổi bật những điểm khác biệt chính giữa chúng -

  • Không giống như một hàm, các phương thức được gọi trên một đối tượng. Giống như trong ví dụ của chúng tôi ở trên, chúng tôi gọi phương thức của chúng tôi là .i.e. “My_method” trên đối tượng “cat” trong khi hàm “sum” được gọi mà không có bất kỳ đối tượng nào. Ngoài ra, bởi vì phương thức được gọi trên một đối tượng, nó có thể truy cập vào dữ liệu bên trong nó.

  • Không giống như phương thức có thể thay đổi trạng thái của đối tượng, hàm python không làm điều này và thường hoạt động trên nó.

Tóm lại, một phương thức là một hàm thuộc về một đối tượng.