เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเข้าถึงแอตทริบิวต์ที่ไม่มีอยู่

บางครั้งอาจต้องการเข้าถึงแอตทริบิวต์ที่ไม่มีอยู่ใน 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")
____.____
แก้ไขและรันโค้ด