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_idstudent_nameです。それでは、Studentクラスのオブジェクトを作成し、その属性にアクセスしてみましょう。

class Student:
    student_id=""
    student_name=""

    # 初期コンストラクタで値を設定する
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# getattr()関数を使用して属性の値を取得する
print('\ngetattr : name of the student is =', getattr(student, "student_name"))

# 以下のようにアクセスすることもできます
print('traditional: name of the student is =', student.student_name)

そのため、出力は次のようになります。

Python getattr() デフォルト値

このセクションでは、Pythonのgetattr()デフォルト値オプションを使用します。オブジェクトに所属していない属性にアクセスしたい場合は、getattr()デフォルト値オプションを使用することができます。例えば、学生の属性student_cgpaが存在しない場合、デフォルト値が表示されます。次の例では、デフォルト値の使用例を見てみましょう。また、属性が存在せず、デフォルト値オプションを使用していない場合の動作も学びます。

class Student:
    student_id=""
    student_name=""

    # 値を設定するための初期コンストラクタ
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# デフォルト値オプションを使用する
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# デフォルト値を使用しない
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()関数についての説明です。もし何か質問がありましたら、下記のコメントボックスをご利用ください。参考文献:公式ドキュメント

Source:
https://www.digitalocean.com/community/tutorials/python-getattr