การแสดงผลออบเจกต์เป็นสตริง
Python มีเมธอดพิเศษ 2 ตัวที่ใช้คืนค่าการแสดงผลออบเจกต์เป็นสตริง ได้แก่ __str__() ซึ่งถูกเรียกเมื่อใช้ print() หรือ str() กับออบเจกต์ และ __repr__() ซึ่งถูกเรียกเมื่อใช้ repr() กับออบเจกต์ แสดงออบเจกต์ใน console โดยไม่เรียก print() หรือใช้แทน __str__() เมื่อไม่ได้กำหนด __str__() ไว้
__str__() ควรให้ผลลัพธ์ที่ "เป็นมิตรกับผู้ใช้" เพื่ออธิบายออบเจกต์ ส่วน __repr__() ควรคืนค่านิพจน์ที่เมื่อนำไปประเมินผลแล้วจะได้ออบเจกต์เดิม ซึ่งช่วยให้โค้ดสามารถทำซ้ำได้
ในแบบฝึกหัดนี้ จะใช้คลาส Employee จาก Chapter 2 ต่อเนื่อง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมเชิงวัตถุใน Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Employee:
def __init__(self, name, salary=30000):
self.name, self.salary = name, salary
# Add the __str__() method
____
emp1 = Employee("Amar Howard", 30000)
print(emp1)
emp2 = Employee("Carolyn Ramirez", 35000)
print(emp2)