Python入門、DIY、クッキング

小さなことをやってみるブログ

pythonのgetattr関数で属性を取得する(初心者のPython入門)

2019年7月2日

Pythonでオブジェクトの属性を取得するgetattr関数の使い方です。(Pythonの標準関数です。)

Pythonの標準関数一覧はこちらです。

属性とは

クラスのメンバ変数(数字、文字)を属性と呼んでいると理解しました。

すでに定義されているクラスの変数も、属性として取得することが出来ます。

getattr関数の使い方

getattr(object,name[,default])

objectはクラス名、nameは取得する属性(変数)名、defaultは指定した属性が存在しなかった場合に戻す値です。

# -*- coding: utf-8 -*-

# テスト用のクラス
class testclass:
    #この時点では中身は何も定義しない
    pass

# クラスに名前属性と名前を追加
setattr(testclass,"name","abc")
# クラスに数字属性と数字を追加
setattr(testclass,"number",123)

# 属性が入ったか取り出して確認する
print(getattr(testclass,"name"))
print(getattr(testclass,"number"))

testclassにnameに”name"とい"う属性を追加し、"abc"という文字列をセットしています。

その後"number"という属性を追加し、123という数値をセットしています。

それをgetattr()で取り出して表示しています。

実行結果は以下の通りです。

abc
123

testclass.nameは、getattr(testclass,"name")と同じで、testclass.numberは、getattr(testclass,"number")と同じです。

属性を参照する場合は、testclass.nameの方が使いやすい気がします。

  • B!