ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับตนเอง ใน 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 ทุกคนปฏิบัติตาม
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น