Phương thức Instance so với Static và Class trong Python: Sự khác biệt quan trọng

Phương thức Instance so với Static và Class trong Python: Sự khác biệt quan trọng

Các phương thức Python thường có thể gây nhầm lẫn khi bạn tham gia vào 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 pháp phiên bản , phương pháp tĩnh , và phương thức lớp .





Không phải lúc nào bạn cũng cần biết sự khác biệt để viết các tập lệnh Python cơ bản, nhưng một khi bạn tiến vào OOP, sự khác biệt có thể tạo ra một thay đổi lớn.





Nếu bạn là người mới sử dụng Python hoặc chỉ muốn thử nghiệm mà không cần phải cài đặt bất kỳ thứ gì, hãy đảm bảo rằng bạn truy cập vào các vỏ Python tương tác trực tuyến .

Trước khi chúng tôi bắt đầu: Tìm 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 được gọi là người trang trí .



Những người trang trí nghe có vẻ phức tạp, nhưng không có gì phải sợ. Decorator chỉ đơn giản là các chức năng. Bạn có thể tự viết chúng hoặc sử dụng chúng 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, người trang trí thực hiện một nhiệm vụ. Sự khác biệt ở đây là người 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 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ì một trong những 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()

Trình trang trí phải ngay trước khai báo hàm hoặc lớp. Họ bắt đầu với @ và không giống như các phương thức thông thường, bạn không phải đặt dấu ngoặc đơn ở cuối trừ khi bạn đang chuyển các đố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ố đó đối với các ví dụ này.

cách xem ai đã đăng ký với bạn trên youtube

Phương thức phiên bản trong Python

Phương thức instance 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 cá thể 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 khác nhau, kích thước động cơ, chỗ ngồi, v.v.

Phương thức phiên bản phải có bản thân dưới dạng một tham số, nhưng bạn không cần phải chuyển nó vào mọi lúc. Tự là một thuật ngữ đặc biệt khác của Python. Bên trong bất kỳ phương thức cá thể nào, bạn có thể sử dụng self để truy cập vào 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 tự mình kiểm tra.

Cuối cùng, vì các phương thức thể hiện 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 thể hiện, trừ khi bạn nói với Python theo 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()

Các Tên biến được truy cập thông qua bản thân . Chú ý rằng khi ví dụ_ chức năng được gọi, bạn không cần phải tự nhập --- Python thực hiện điều này cho bạn.

Phương thức tĩnh trong Python

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 vào bất kỳ dữ liệu dành riêng cho lớp nào. Bạn không cần phải sử dụng bản thân và bạn thậm chí không cần phải khởi tạo một phiên bản, bạn có thể 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()

Các @staticmethod decorator đượ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 hàm tiện ích, các hàm này thực hiện một tác vụ riêng lẻ. Họ không cần (và không thể) truy cập dữ liệu lớp. Chúng phải hoàn toàn độc lập và chỉ hoạt động với dữ liệu được truyền vào 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

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 bản thân như một đối số, nhưng chúng cần một tham số được gọi là cls . Điều nà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 cách sử dụng @classmethod người trang trí.

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()

Phương thức lớp có thể là loại phương thức khó hiểu hơn trong ba loại phương thức, nhưng chúng có những cách sử dụng. Các phương thức của lớp có thể thao tác với chính 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 sử dụng từng loại phương pháp

Nó có vẻ 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 được nó với một chút thực hành.

dừng mã hệ thống dịch vụ ngoại lệ cửa sổ 10

Ngay cả khi bạn chỉ viết các đoạn mã nhỏ cho vui, 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ễ dàng sử dụng lại trong tương lai.

Tóm tắt:

  1. Phương pháp phiên bản: 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 mỗi phiên bản.
  2. Phương pháp tĩnh: Không thể truy cập bất kỳ thứ gì khác trong lớp. Mã hoàn toàn độc lập.
  3. Phương pháp lớp học: Có thể truy cập các phương thức giới hạn 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 không xem qua các khóa học này để đi từ người mới bắt đầu Python đến chuyên nghiệp? 5 trang web này cũng rất tốt cho người mới bắt đầu học Python. Nếu bạn muốn sử dụng Python trong thế giới thực, nhưng lại chán Raspberry Pi, hãy làm thế nào về hướng dẫn của chúng tôi điều khiển Arduino bằng Python ?

Đăng lại Đăng lại tiếng riu ríu E-mail Cách làm sạch PC Windows của bạn bằng Command Prompt

Nếu PC Windows của bạn sắp hết dung lượng lưu trữ, hãy dọn sạch rác bằng các tiện ích Command Prompt nhanh này.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Lập trình
  • Python
Giới thiệu về tác giả Joe Coburn(136 bài báo đã xuất bản)

Joe tốt nghiệp ngành Khoa học Máy tính tại Đại học Lincoln, Vương quốc Anh. Anh ấy là một nhà phát triển phần mềm chuyên nghiệp và khi anh ấy không lái máy bay không người lái hay viết nhạc, anh ấy thường có thể bị bắt gặp chụp ảnh hoặc sản xuất video.

Xem thêm từ Joe Coburn

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký