Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตัวเองในคลาส Python


ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับตนเอง ใน Python . คุณต้องคุ้นเคยกับมัน หากคุณกำลังทำงานกับ Python เราจะได้เห็นสิ่งที่น่าสนใจเกี่ยวกับ

หมายเหตุ - ตนเองไม่ใช่คีย์เวิร์ดใน Python

มาเริ่มกันที่การใช้ self ที่พบบ่อยที่สุดใน Python .

เราจะใช้ตัวเอง ในชั้นเรียนเพื่อแสดงตัวอย่างของวัตถุ เราสามารถสร้างคลาสได้หลายคลาส และแต่ละอินสแตนซ์จะมีค่าต่างกัน และตัวเอง ช่วยให้เราได้รับค่าคุณสมบัติเหล่านั้นภายในอินสแตนซ์ของคลาส มาดูตัวอย่างกัน

ตัวอย่าง

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

เรากำลังกำหนดคุณสมบัติของคลาสเป็น ตัวเอง[something] . ดังนั้น เมื่อใดก็ตามที่เราสร้างอินสแตนซ์ของ คลาส , ตัวเอง จะอ้างถึงอินสแตนซ์อื่นที่เรากำลังเข้าถึงคุณสมบัติหรือเมธอดของคลาส

ตอนนี้ ให้สร้างสองอินสแตนซ์ของคลาส แล็ปท็อป และดูว่า ตัวเองทำงานอย่างไร .

ตัวอย่าง

# 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}")

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

Laptop One: Lenovo
Laptop Two: Dell

เรามีชื่อต่างกันสองชื่อสำหรับพร็อพเพอร์ตี้เดียวกัน มาดูรายละเอียดเบื้องหลังกันเลย

Python ส่ง ข้อมูลอ้างอิง ไปยังอินสแตนซ์โดยค่าเริ่มต้นในขณะที่เข้าถึงวิธีการ หรือและข้อมูลอ้างอิง ถูกจับในตัวเอง . ดังนั้น การอ้างอิงจึงแตกต่างกันในแต่ละกรณี และเราจะได้รับคุณสมบัติของอินสแตนซ์ที่เกี่ยวข้อง

เรารู้ว่า ตัวเอง ไม่ใช่คีย์เวิร์ดของ Python . เป็นเหมือนข้อโต้แย้งที่คุณไม่จำเป็นต้องส่งในขณะที่เข้าถึงคุณสมบัติหรือวิธีการของอินสแตนซ์

Python จะส่งการอ้างอิงไปยังอินสแตนซ์ให้คุณโดยอัตโนมัติ เราสามารถจับภาพของอินสแตนซ์ด้วยชื่อตัวแปรใดก็ได้ เรียกใช้รหัสต่อไปนี้และดูผลลัพธ์

ตัวอย่าง

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

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

Available
Not available

เราได้เปลี่ยนชื่อเป็น ตัวเอง ถึง อย่างอื่น . แต่ก็ยังใช้งานได้เหมือนเดิม ไม่มีความแตกต่าง ดังนั้น ตัวเอง ไม่ใช่คีย์เวิร์ด ยิ่งไปกว่านั้น เราสามารถเปลี่ยนตัวเองเป็นอะไรก็ได้ที่เราต้องการ มันเหมือนเป็นการโต้เถียงกันมากกว่า

หมายเหตุ - แนวปฏิบัติที่ดีที่สุดคือการใช้ ตัวเอง . เป็นมาตรฐานที่โปรแกรมเมอร์ Python ทุกคนปฏิบัติตาม

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น