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

เมธอดพิเศษคืออะไร
เมธอดพิเศษคืออะไร
เมธอดพิเศษคือเมธอดที่กำหนดไว้ล่วงหน้าใน 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__ และอื่น ๆ)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เมธอดพิเศษ (__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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คลาสและอ็อบเจ็กต์
- แอตทริบิวต์และเมธอด
- การสืบทอด
- พหุสัณฐาน
- การห่อหุ้มและนามธรรม
- เมธอดพิเศษ (__str__, __repr__ และอื่น ๆ)