始める無料で始める

存在しない属性へのアクセス

オブジェクトの名前空間に存在しない属性へアクセスしようとすることがあります。通常、この場合は AttributeError が発生します。この演習では、Python のマジックメソッドのひとつを使ってこの状況を処理する練習をします。楽しんで取り組んでください!

この演習はコースの一部です

Python 中級オブジェクト指向プログラミング

コースを見る

演習の手順

  • BankAccount の名前空間に定義されていない属性が参照されたときに実行されるメソッドを定義します。このメソッドは selfname を受け取ります。
  • そのマジックメソッドに、参照された属性はこのオブジェクトに設定すべきであると示唆するメッセージを表示するロジックを追加します。
  • 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")
____.____
コードを編集して実行