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

tự trong lớp Python

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về bản thân bằng Python . Bạn phải làm quen với nó nếu bạn đang làm việc với Python. Chúng ta sẽ thấy một số điều thú vị về.

Lưu ý - self không phải là một từ khóa trong Python.

Hãy bắt đầu với cách sử dụng self phổ biến nhất trong Python .

Chúng tôi sẽ sử dụng self trong các lớp để đại diện cho thể hiện của một đối tượng. Chúng ta có thể tạo nhiều lớp và mỗi cá thể sẽ có các giá trị khác nhau. Và bản thân giúp chúng ta lấy các giá trị thuộc tính đó trong cá thể lớp. Hãy xem một ví dụ khác.

Ví dụ

# class
class Laptop:
   # init method
   def __init__(self, company, model):
      # self
      self.company = company
      self.model = model

Chúng tôi đang xác định các thuộc tính của một lớp là self. [Something] . Vì vậy, bất cứ khi nào chúng tôi tạo một phiên bản của lớp , bản thân sẽ tham chiếu đến một phiên bản khác mà chúng tôi đang truy cập các thuộc tính hoặc phương thức của lớp.

Bây giờ, hãy tạo hai phiên bản của lớp Máy tính xách tay và xem cách bản thân hoạt động .

Ví dụ

# class
class Laptop:
   # init method
   def __init__(self, company, model):
      # self
      self.company = company
      self.model = model
# creating instances for the class Laptop
laptop_one = Laptop('Lenovo', 'ideapad320')
laptop_two = Laptop('Dell', 'inspiron 7000')
# printing the properties of the instances
print(f"Laptop One: {laptop_one.company}")
print(f"Laptop Two: {laptop_two.company}")

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

Laptop One: Lenovo
Laptop Two: Dell

Chúng tôi có hai tên khác nhau cho cùng một tài sản. Hãy xem một số chi tiết đằng sau nó.

Python gửi một tài liệu tham khảo đến phiên bản theo mặc định trong khi truy cập phương pháp hoặc Và tài liệu tham khảo được chụp trong bản thân . Vì vậy, đối với mỗi trường hợp, tham chiếu là khác nhau. Và chúng tôi sẽ nhận được các thuộc tính phiên bản tương ứng.

Chúng tôi biết rằng bản thân không phải là từ khóa của Python . Nó giống như một đối số mà bạn không cần phải gửi khi truy cập vào bất kỳ thuộc tính hoặc phương thức nào của một phiên bản.

Python sẽ tự động gửi một tham chiếu đến phiên bản cho bạn. Chúng ta có thể nắm bắt phiên bản của instance với bất kỳ tên biến nào. Chạy đoạn mã sau và xem kết quả.

Ví dụ

import inspect
# class
class Laptop:
   # init method
   def __init__(other_than_self, company, model, colors):
      # self not really
      other_than_self.company = company
      other_than_self.model = model
      other_than_self.colors_available = colors
      # method
      def is_laptop_available(not_self_but_still_self, color):
         # return whether a laptop in specified color is available or not
         return color in not_self_but_still_self.colors_available
         # creating an instance to the class
         laptop = Laptop('Dell', 'inspiron 7000', ['Silver', 'Black'])
# invoking the is_laptop_available method withour color keyword
print("Available") if laptop.is_laptop_available('Silver') else print("Not available")
print("Available") if laptop.is_laptop_available('White') else print("Not available")

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

Available
Not available

Chúng tôi đã đổi tên tự sang thứ gì đó khác . Nhưng nó vẫn hoạt động như trước đây. Không có sự khác biệt. Vì vậy, bản thân không phải là một từ khóa. Và hơn thế nữa, chúng ta có thể thay đổi bản thân thành bất cứ thứ gì chúng ta muốn có. Nó giống như một cuộc tranh cãi hơn.

Lưu ý - thực tiễn tốt nhất là sử dụng self. . Đó là một tiêu chuẩn mà mọi lập trình viên Python tuân theo

Kết luận

Nếu bạn có bất kỳ nghi ngờ nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.