Tại đây, sự khác biệt chính giữa Phương thức và Hàm trong Python được giải thích. Java cũng là một ngôn ngữ OOP, nhưng không có khái niệm Hàm trong đó. Nhưng Python có cả khái niệm Phương thức và Hàm
Phương pháp Python
- Phương thức được gọi theo tên của nó, nhưng nó được liên kết với một đối tượng [phụ thuộc]
- Định nghĩa phương thức luôn bao gồm 'bản thân' làm tham số đầu tiên của nó
- Một phương thức được chuyển hoàn toàn đối tượng mà nó được gọi
- Nó có thể hoặc không thể trả lại bất kỳ dữ liệu nào
- Một phương thức có thể hoạt động trên dữ liệu [các biến thể hiện] được chứa bởi lớp tương ứng
Cấu trúc phương thức cơ bản trong Python.
con trăn
# Basic Python method
class
class_name
def
method_name [] :
Ceiling value of 15.25 is : 160
Ceiling value of 15.25 is : 161
Ceiling value of 15.25 is : 160
Ceiling value of 15.25 is : 163
Ceiling value of 15.25 is : 160
Ceiling value of 15.25 is : 165
Python 3 Phương thức do người dùng xác định.
Python3
Ceiling value of 15.25 is : 166
class
Ceiling value of 15.25 is : 168
def
-2 91
-2 92
-2 93
Ceiling value of 15.25 is : 160
-2 95_______8_______6
-2 97
-2 98
class
22 150
22 151_______16_______2
22 153
22 154
22 155
đầu ra
I am in method_abc of ABC class
Phương thức sẵn có của Python 3.
Python3
22 156
22 157
22 158
22 152
# Basic Python method
0# Basic Python method
1_______39_______2-2 95
# Basic Python method
4# Basic Python method
1 # Basic Python method
6 # Basic Python method
7đầu ra
Ceiling value of 15.25 is : 16
Biết thêm về Python ceil[] và floor[] method
Chức năng
- Chức năng là khối mã cũng được gọi theo tên của nó. [sống độc lập]
- Hàm có thể có các tham số khác nhau hoặc có thể không có bất kỳ tham số nào. Nếu bất kỳ dữ liệu [tham số] nào được truyền, chúng sẽ được truyền rõ ràng
- Nó có thể hoặc không thể trả lại bất kỳ dữ liệu nào
- Hàm không xử lý Lớp và khái niệm thể hiện của nó
Cấu trúc hàm cơ bản trong Python.
Python3
def
# Basic Python method
9
Ceiling value of 15.25 is : 161
class
3
Ceiling value of 15.25 is : 165
Hàm do người dùng xác định trong Python 3.
Python3
def
class
7
class
9 class_name
0class_name
1class_name
2
-2 95
class_name
4class_name
5class_name
6class_name
7class_name
8class_name
9
-2 95
class_name
4
2class_name
6
4class_name
8
6đầu ra
________số 8_______Chức năng sẵn có của Python 3.
Python3
7_______16_______2
9def
0_______43_______1class_name
6
2class_name
6def
5def
6
Các phương thức Python thường có thể gây nhầm lẫn khi bạn bắt đầu lập trình hướng đối tượng [OOP]. Hướng dẫn này bao gồm ba loại phương thức chính trong Python
3 loại phương thức trong Python
Có ba loại phương thức trong Python. phương thức thể hiện, phương thức tĩnh và phương thức lớp
Biết được sự khác biệt không phải lúc nào cũng cần thiết để viết mã các tập lệnh Python cơ bản, nhưng khi bạn chuyển sang OOP, sự khác biệt có thể tạo ra sự thay đổi lớn
Nếu bạn chưa quen với Python hoặc chỉ muốn thử nghiệm mà không phải cài đặt bất kỳ thứ gì, thì hãy đảm bảo bạn truy cập các trình bao Python tương tác trực tuyến này
Trước khi chúng tôi bắt đầu. Hiểu các mẫu trang trí
Trước khi xem xét sự khác biệt, điều quan trọng là phải hiểu một mẫu thiết kế được gọi là mẫu trang trí hoặc đơn giản gọi là trang trí
Trang trí nghe có vẻ phức tạp, nhưng không có gì phải sợ. Trang trí chỉ đơn giản là chức năng. Bạn có thể tự viết chúng hoặc sử dụng những thứ có trong thư viện hoặc thư viện chuẩn Python
Giống như bất kỳ chức năng nào, decorator thực hiện một nhiệm vụ. Sự khác biệt ở đây là các bộ trang trí áp dụng logic hoặc thay đổi hành vi của các chức năng khác. Chúng là một cách tuyệt vời để sử dụng lại mã và có thể giúp phân tách logic thành các mối quan tâm riêng lẻ
Mẫu trang trí là cách ưa thích của Python để xác định các phương thức tĩnh hoặc lớp. Đây là những gì trông giống như trong Python
class DecoratorExample:
""" Example Class """
def __init__[self]:
""" Example Setup """
print['Hello, World!']
@staticmethod
def example_function[]:
""" This method is decorated! """
print['I\'m a decorated function!']
de = DecoratorExample[]
de.example_function[]
Các bộ trang trí phải ngay trước một khai báo hàm hoặc lớp. Chúng bắt đầu bằng dấu @ và không giống như các phương pháp thông thường, bạn không cần phải đặt dấu ngoặc đơn ở cuối trừ khi bạn chuyển đối số
Có thể kết hợp nhiều trình trang trí, viết của riêng bạn và áp dụng chúng cho các lớp, nhưng bạn sẽ không cần phải làm bất kỳ điều gì trong số đó cho các ví dụ này
Phương thức sơ thẩm trong Python
Các phương thức sơ thẩm là loại phương thức phổ biến nhất trong các lớp Python. Chúng được gọi như vậy vì chúng có thể truy cập dữ liệu duy nhất của phiên bản của chúng. Nếu bạn có hai đối tượng, mỗi đối tượng được tạo từ một lớp ô tô, thì mỗi đối tượng có thể có các thuộc tính khác nhau. Chúng có thể có màu sắc, kích cỡ động cơ, chỗ ngồi khác nhau, v.v.
Các phương thức sơ thẩm phải có self làm tham số, nhưng bạn không cần phải chuyển tham số này mọi lúc. Bản thân là một thuật ngữ đặc biệt khác của Python. Bên trong bất kỳ phương thức thể hiện nào, bạn có thể sử dụng self để truy cập bất kỳ dữ liệu hoặc phương thức nào có thể nằm trong lớp của bạn. Bạn sẽ không thể truy cập chúng nếu không thông qua bản thân
Cuối cùng, vì các phương thức cá thể là phổ biến nhất nên không cần trình trang trí. Bất kỳ phương thức nào bạn tạo sẽ tự động được tạo dưới dạng phương thức cá thể, trừ khi bạn nói với Python cách khác
Đây là một ví dụ
class DecoratorExample:
""" Example Class """
def __init__[self]:
""" Example Setup """
print['Hello, World!']
self.name = 'Decorator_Example'
def example_function[self]:
""" This method is an instance method! """
print['I\'m an instance method!']
print['My name is ' + self.name]
de = DecoratorExample[]
de.example_function[]
Biến name được truy cập thông qua self. Lưu ý rằng khi hàm_ví_dụ được gọi, bạn không cần phải tự chuyển vào---Python sẽ làm điều này cho bạn
Phương thức tĩnh trong Python
Các phương thức tĩnh là các phương thức có liên quan đến một lớp theo một cách nào đó, nhưng không cần truy cập bất kỳ dữ liệu cụ thể nào của lớp. Bạn không cần phải sử dụng self và thậm chí bạn không cần khởi tạo một thể hiện, bạn chỉ cần gọi phương thức của mình
class DecoratorExample:
""" Example Class """
def __init__[self]:
""" Example Setup """
print['Hello, World!']
@staticmethod
def example_function[]:
""" This method is a static method! """
print['I\'m a static method!']
de = DecoratorExample.example_function[]
Trình trang trí @staticmethod được sử dụng để nói với Python rằng phương thức này là một phương thức tĩnh
Các phương thức tĩnh rất tốt cho các chức năng tiện ích, thực hiện một tác vụ trong sự cô lập. Họ không cần [và không thể] truy cập dữ liệu lớp học. Chúng phải hoàn toàn độc lập và chỉ hoạt động với dữ liệu được truyền dưới dạng đối số. Bạn có thể sử dụng một phương thức tĩnh để cộng hai số với nhau hoặc in một chuỗi đã cho
Phương thức lớp trong Python
Các phương thức lớp là loại phương thức OOP thứ ba và cuối cùng cần biết. Các phương thức lớp biết về lớp của chúng. Họ không thể truy cập dữ liệu cá thể cụ thể, nhưng họ có thể gọi các phương thức tĩnh khác
Các phương thức lớp không cần self làm đối số, nhưng chúng cần một tham số gọi là cls. Đây là viết tắt của lớp và giống như bản thân, được Python tự động chuyển vào
Các phương thức lớp được tạo bằng trình trang trí @classmethod
class DecoratorExample:
""" Example Class """
def __init__[self]:
""" Example Setup """
print['Hello, World!']
@classmethod
def example_function[cls]:
""" This method is a class method! """
print['I\'m a class method!']
cls.some_other_function[]
@staticmethod
def some_other_function[]:
print['Hello!']
de = DecoratorExample[]
de.example_function[]
Các phương thức lớp có thể là loại phương thức khó hiểu hơn trong ba loại, nhưng chúng có công dụng của chúng. Các phương thức của lớp có thể tự thao tác với lớp, điều này rất hữu ích khi bạn đang làm việc trên các dự án lớn hơn, phức tạp hơn
Khi nào nên sử dụng từng loại phương pháp
Có vẻ như đây là một quyết định khó khăn và khó khăn khi lựa chọn giữa các loại phương thức trong Python, nhưng bạn sẽ sớm hiểu rõ về nó nếu thực hành một chút
Ngay cả khi bạn chỉ viết các tập lệnh nhỏ cho vui, thì việc học một tính năng OOP khác của Python là một kỹ năng tuyệt vời cần biết và có thể giúp mã của bạn dễ khắc phục sự cố hơn và dễ sử dụng lại hơn trong tương lai
Tóm tắt
- Phương thức sơ thẩm. Loại phương pháp phổ biến nhất. Có thể truy cập dữ liệu và thuộc tính duy nhất cho từng phiên bản
- Phương thức tĩnh. Không thể truy cập bất cứ thứ gì khác trong lớp. Mã hoàn toàn khép kín
- phương pháp lớp. Có thể truy cập các phương thức hạn chế trong lớp. Có thể sửa đổi các chi tiết cụ thể của lớp
Nếu hướng dẫn này hơi nâng cao hoặc không hoàn toàn như những gì bạn đang tìm kiếm, thì tại sao bạn không xem qua các khóa học này để chuyển từ Python mới bắt đầu sang chuyên nghiệp? . Nếu bạn muốn sử dụng Python trong thế giới thực, nhưng lại cảm thấy nhàm chán với Raspberry Pi, thì hướng dẫn của chúng tôi về cách điều khiển Arduino bằng Python thì sao?