Phương thức lớp python để tạo cá thể

Các bạn đọc like ủng hộ MUO nhé. Khi bạn mua hàng bằng các liên kết trên trang web của chúng tôi, chúng tôi có thể kiếm được hoa hồng liên kết. Đọc thêm

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

  1. 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
  2. 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
  3. 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?

Phương thức lớp để tạo phiên bản Python là gì?

Để tạo các thể hiện của một lớp, bạn gọi lớp đó bằng tên lớp và truyền vào bất kỳ đối số nào mà phương thức __init__ của nó chấp nhận .

Phương thức nào tạo một thể hiện mới của một lớp?

Phương thức newInstance() của lớp Class và lớp Constructor được sử dụng để tạo một thể hiện mới của lớp. Phương thức newInstance() của lớp Class có thể gọi hàm tạo không đối số, trong khi phương thức newInstance() của lớp Constructor có thể gọi bất kỳ số lượng đối số nào.

Phương pháp chính xác để tạo một phương thức thể hiện là gì?

Có ba bước để tạo và gọi một phương thức thể hiện. .
Đối tượng của lớp. Khai báo một đối tượng của lớp trong phương thức chính hoặc từ bên ngoài lớp. .
Định nghĩa phương pháp. viết mã tiêu đề và nội dung của phương thức như bên dưới. .
Gọi phương thức. bất cứ khi nào bạn muốn sử dụng phương thức, hãy gọi objectName. methodName();

Một phương thức có thể là một thể hiện của một lớp không?

Phương thức thể hiện là phương thức thuộc về các thể hiện của một lớp, không thuộc về chính lớp đó . Để xác định một phương thức thể hiện, chỉ cần bỏ tĩnh khỏi tiêu đề phương thức. Trong phần định nghĩa phương thức, bạn đề cập đến các biến và phương thức trong lớp theo tên của chúng, không có dấu chấm.