Pythonのgetattr()
前のチュートリアルでは、Pythonのシステムコマンドについて学びました。今回のチュートリアルでは、Pythonのgetattr()関数について説明します。
Pythonのgetattr()関数
Pythonのgetattr()関数は、オブジェクトの属性の値を取得するために使用されます。オブジェクトに属性がない場合は、デフォルト値が返されます。基本的に、デフォルト値を返すことがPythonのgetattr()関数を使用する主な理由です。したがって、チュートリアルを開始する前に、Pythonのgetattr()関数の基本的な構文を見てみましょう。
getattr(object_name, attribute_name[, default_value])
Pythonのgetattr()の例を示します。
このセクションでは、getattr()関数を使用してオブジェクトの属性値にアクセスする方法を学びます。例えば、Studentというクラスを書いているとします。Studentクラスの基本的な属性はstudent_idとstudent_nameです。では、Studentクラスのオブジェクトを作成し、その属性にアクセスします。
class Student:
student_id=""
student_name=""
# initial constructor to set the values
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# get attribute values by using getattr() function
print('\ngetattr : name of the student is =', getattr(student, "student_name"))
# but you could access this like this
print('traditional: name of the student is =', student.student_name)
Pythonのgetattr()のデフォルト値
このセクションでは、Pythonのgetattr()のデフォルト値オプションを使用します。オブジェクトに属していない属性にアクセスしたい場合は、getattr()のデフォルト値オプションを使用します。たとえば、student_cgpa属性が学生に存在しない場合、デフォルト値が表示されます。以下の例では、デフォルト値の例も見ていきます。また、属性が存在しない場合にデフォルト値オプションを使用していない場合に何が起こるかも学びます。
class Student:
student_id=""
student_name=""
# initial constructor to set the values
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# using default value option
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# without using default value
try:
print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
print("Attribute is not found :(")
したがって、コードを実行すると、このような出力が得られます。
Using default value : Cgpa of the student is = 3.0
Attribute is not found :(
getattr()関数を呼び出す際に、デフォルト値が提供されていない場合にはAttributeErrorが発生することに注意してください。
Pythonのgetattr()関数を使用する理由
Pythonのgetattr()を使用する主な理由は、属性の名前を文字列として使用することで値を取得できるからです。したがって、プログラム内からコンソールに属性名を手動で入力できます。また、属性が見つからない場合は、デフォルト値を設定することができます。これにより、未完了のデータを完了することができます。また、Studentクラスが作業中の場合は、getattr()関数を使用して他のコードを補完することができます。一度Studentクラスにこの属性があると、自動的にそれを選択し、デフォルト値を使用しません。以上がPythonのgetattr()関数についての説明です。質問がある場合は、以下のコメントボックスを使用してください。参考文献:公式ドキュメント