การเพิ่ม constructor แบบอื่น
Class method เป็นวิธีที่ยอดเยี่ยมสำหรับการสร้างออบเจ็กต์จากคลาสในรูปแบบอื่น เช่น การรับข้อมูลที่แตกต่างออกไปและประมวลผลระหว่างการสร้างออบเจ็กต์เพื่อส่งคืน attribute ที่ต้องการ
ในแบบฝึกหัดนี้ จะได้ทำงานกับคลาส Person โดย constructor เดิมรับชื่อและอายุในขั้นตอน initialization จากนั้นจะเพิ่ม class method ที่รับชื่อและปีเกิดแทน แล้วให้เมธอดคำนวณอายุจากปีเกิดเอง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ
คำแนะนำการฝึกหัด
- เพิ่ม decorator สำหรับ class method
- กำหนด class method
from_birth_year()ให้รับสามอาร์กิวเมนต์ ได้แก่ คำที่ใช้เป็นอาร์กิวเมนต์พิเศษสำหรับอ้างถึงคลาส,nameและbirth_year - ภายในเมธอด ให้สร้างตัวแปร
ageโดยคำนวณจากผลต่างระหว่าง class attributeCURRENT_YEARกับbirth_year - ส่งคืน attribute
nameและageของคลาส
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Person:
CURRENT_YEAR = 2024
def __init__(self, name, age):
self.name = name
self.age = age
# Add a class method decorator
____
# Define the from_birth_year method
def ____(____, ____, ____):
# Create age
age = ____.____ - ____
# Return the name and age
return ____(____, ____)
bob = Person.from_birth_year("Bob", 1990)