0Pricing
Learn AI with Python · บทเรียน

เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)

เจาะลึกเมธอดพิเศษของ Python เพื่อปรับแต่งพฤติกรรมของออบเจ็กต์

เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ) เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 6 จากทั้งหมด 6 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 6 บทเรียน

บทนำสู่เมธอดพิเศษ

บทนำสู่เมธอดพิเศษ

เมธอดพิเศษ หรือที่เรียกกันว่าเมธอดขีดล่างคู่ เป็นเมธอดพิเศษใน Python ที่ช่วยให้คุณกำหนดวิธีการทำงานของออบเจ็กต์ในสถานการณ์เฉพาะได้

ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีใช้เมธอดพิเศษทั่วไป เช่น __str__ __repr__ และเมธอดอื่น ๆ

เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ) — ภาพประกอบ 1

เมธอดพิเศษคืออะไร

เมธอดพิเศษคืออะไร

เมธอดพิเศษคือเมธอดที่กำหนดไว้ล่วงหน้าในไพธอน ซึ่งจะถูกเรียกโดยอัตโนมัติเมื่อมีการดำเนินการบางอย่างกับออบเจ็กต์ เมธอดเหล่านี้ระบุด้วยขีดล่างคู่ เช่น __init__ หรือ __str__

เมธอด __init__

เมธอด __init__

เมธอด __init__ เป็นตัวสร้างที่ใช้เริ่มต้นออบเจ็กต์ใหม่ เมธอดนี้จะถูกเรียกโดยอัตโนมัติเมื่อมีการสร้างออบเจ็กต์ขึ้น:

# Using the __init__ method to initialize attributes
class Person:
    def __init__(self, name, age):
        self.name = name  # Initialize the name attribute
        self.age = age  # Initialize the age attribute

# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age)  # Outputs: Alice 30

เมธอด __str__

เมธอด __str__

เมธอด __str__ กำหนดการแสดงออบเจ็กต์เป็นสตริงเมื่อมีการเรียกใช้ print():

# Defining the __str__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"  # String representation

person = Person("Alice", 30)
print(person)  # Outputs: Name: Alice, Age: 30

เมธอด __repr__

เมธอด __repr__

เมธอด __repr__ จัดเตรียมการแสดงออบเจ็กต์เป็นสตริงอย่างเป็นทางการ ซึ่งมักใช้สำหรับการแก้จุดบกพร่อง:

# Defining the __repr__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person('{self.name}', {self.age})"  # Debug-friendly representation

person = Person("Alice", 30)
print(repr(person))  # Outputs: Person('Alice', 30)

การกำหนดพฤติกรรมตัวดำเนินการใหม่ด้วยเมธอดพิเศษ

การกำหนดพฤติกรรมตัวดำเนินการใหม่ด้วยเมธอดพิเศษ

คุณสามารถใช้เมธอดพิเศษเพื่อปรับแต่งพฤติกรรมของตัวดำเนินการ เช่น + หรือ ==:

# Overloading the + operator with __add__
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)  # Adding two points

    def __str__(self):
        return f"({self.x}, {self.y})"

point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2  # Calls __add__
print(result)  # Outputs: (4, 6)

เมธอดพิเศษที่ใช้บ่อย

เมธอดพิเศษที่ใช้บ่อย

ต่อไปนี้คือเมธอดพิเศษที่ใช้กันทั่วไป:

  • __len__: กำหนดพฤติกรรมของฟังก์ชัน len()
  • __getitem__: ทำให้สามารถเข้าถึงข้อมูลด้วยดัชนีได้เช่นเดียวกับรายการหรือพจนานุกรม
  • __eq__: ปรับแต่งการเปรียบเทียบความเท่ากันโดยใช้ ==

การใช้ __len__ และ __getitem__

การใช้ __len__ และ __getitem__

คุณสามารถใช้ __len__ เพื่อกำหนดความยาวของออบเจ็กต์ที่กำหนดเอง และใช้ __getitem__ เพื่อทำให้ออบเจ็กต์นั้นรองรับการเข้าถึงด้วยดัชนี:

# Using __len__ and __getitem__ in a custom class
class CustomList:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)  # Defines the behavior of len()

    def __getitem__(self, index):
        return self.items[index]  # Enables indexing

custom_list = CustomList([1, 2, 3])
print(len(custom_list))  # Outputs: 3
print(custom_list[1])  # Outputs: 2

ข้อผิดพลาดที่พบบ่อยเกี่ยวกับเมธอดพิเศษ

ข้อผิดพลาดที่พบบ่อยเกี่ยวกับเมธอดพิเศษ

ต่อไปนี้คือข้อผิดพลาดที่ควรหลีกเลี่ยง:

  • กำหนดเมธอดพิเศษโดยไม่ให้ตรงกับพฤติกรรมที่เมธอดนั้นควรมี
  • กำหนดพฤติกรรมของตัวดำเนินการใหม่โดยไม่จำเป็น
  • ลืมนำเมธอดพิเศษที่จำเป็นไปใช้ในชนิดข้อมูลที่กำหนดเอง

เราได้เรียนรู้อะไรบ้าง

เราได้เรียนรู้อะไรบ้าง

ในบทเรียนนี้ คุณได้เรียนรู้:

  • เมธอดพิเศษคืออะไรและเหตุใดจึงมีประโยชน์
  • วิธีใช้เมธอดพิเศษทั่วไป เช่น __init__ __str__ และ __repr__
  • วิธีกำหนดพฤติกรรมของตัวดำเนินการใหม่โดยใช้เมธอดพิเศษ

ทำได้ดีมาก! ไปยังหัวข้อถัดไปกันเลย

เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ) — ภาพประกอบ 11

คำถามที่พบบ่อย

บทเรียน “เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 6 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)”

เจาะลึกเมธอดพิเศษของ Python เพื่อปรับแต่งพฤติกรรมของออบเจ็กต์ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 6 จากทั้งหมด 6 บทเรียน

บทเรียน “เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คลาสและออบเจ็กต์
  2. แอตทริบิวต์และเมธอด
  3. การสืบทอด
  4. พหุสัณฐาน
  5. การห่อหุ้มและนามธรรม
  6. เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)
← กลับไปที่ Learn AI with Python