การเข้าถึงแอตทริบิวต์ที่ไม่มีอยู่
บางครั้งอาจต้องการเข้าถึงแอตทริบิวต์ที่ไม่มีอยู่ใน namespace ของออบเจกต์ ซึ่งโดยปกติแล้วจะเกิด AttributeError ขึ้น ในแบบฝึกหัดนี้ จะได้ฝึกจัดการสถานการณ์ดังกล่าวโดยใช้ magic method ของ Python
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Object-Oriented Programming ใน Python ระดับกลาง
คำแนะนำการฝึกหัด
- กำหนด method ที่จะถูกเรียกใช้เมื่ออ้างถึงแอตทริบิวต์ที่ไม่ได้กำหนดไว้ใน namespace ของ
BankAccountโดย method นี้รับพารามิเตอร์selfและname - เพิ่ม logic ใน magic method เพื่อแสดงข้อความแนะนำว่าควรกำหนดแอตทริบิวต์ที่อ้างถึงให้กับออบเจกต์
- สร้างออบเจกต์จากคลาส
BankAccountแล้วลองเข้าถึงแอตทริบิวต์routing_numberจากนั้นสังเกตผลลัพธ์ที่ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class BankAccount:
def __init__(self, account_number):
self.account_number = account_number
# Define a magic method to handle references to attribute
# not in an object's namespace
def ____(____, ____):
# Output a message to instruct further action
print(f"""{____} is not defined in BankAccount object.
Please define this attribute if needed.""")
# Create a BankAccount object, reference routing_number
checking_account = ____("123456")
____.____