0Pricing
Python Academy · บทเรียน

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

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

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

บทนำเกี่ยวกับเมธอดพิเศษ

บทนำเกี่ยวกับเมธอดพิเศษ

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

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

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

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

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

เมธอดพิเศษคือเมธอดที่กำหนดไว้ล่วงหน้าใน Python ซึ่งจะถูกเรียกโดยอัตโนมัติเมื่อมีการดำเนินการบางอย่างกับออบเจ็กต์ เมธอดเหล่านี้สังเกตได้จากขีดล่างคู่ เช่น __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

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

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

ข้อผิดพลาดที่ควรหลีกเลี่ยงมีดังนี้:

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

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

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

ในบทเรียนนี้ คุณได้เรียนรู้เรื่องต่อไปนี้:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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