目次
はじめに
Pythonには便利な組み込み関数が数多く存在します。その中でもvars()
関数は、オブジェクトの属性を辞書として取得できる便利な関数です。本記事では、vars()
関数の基本構文や使用例、さらに応用例について詳しく解説していきます。
vars関数とは?
vars()
関数は、オブジェクトの属性(変数名とその値)を辞書型で取得するためのPythonの組み込み関数です。主にデバッグや動的な属性管理に役立ちます。
この関数は以下のような用途で利用されます。
- クラスやインスタンスの属性を一覧で取得する
- 辞書型オブジェクトの取得
locals()
やglobals()
と組み合わせた変数管理
vars関数の基本構文
vars()
関数の基本的な構文は以下の通りです。
vars([object])
引数
object
(オプション): クラスやインスタンスを指定すると、そのオブジェクトの属性を辞書型で取得できます。- 引数なしで呼び出すと、
locals()
と同じ動作になり、現在のローカルスコープの変数一覧を取得します。
返り値
object
が指定された場合、そのオブジェクトの__dict__
属性を返します。object
が省略された場合、現在のローカル変数の辞書を返します。
vars関数の使用例
クラスのインスタンス属性を取得する
class Sample:
def __init__(self, x, y):
self.x = x
self.y = y
obj = Sample(10, 20)
print(vars(obj))
実行結果
{'x': 10, 'y': 20}
引数なしで使用する(ローカル変数の取得)
x = 5
y = "hello"
print(vars())
実行結果(変数の状況によって変動)
{'x': 5, 'y': 'hello', ...}
vars関数の応用例
vars()
を用いた動的なオブジェクト更新
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
print(vars(person)) # {'name': 'Alice', 'age': 25}
# 動的に属性を追加
vars(person)['city'] = 'Tokyo'
print(vars(person)) # {'name': 'Alice', 'age': 25, 'city': 'Tokyo'}
実行結果
{'name': 'Alice', 'age': 25}
{'name': 'Alice', 'age': 25, 'city': 'Tokyo'}
vars()
を使ってオブジェクトの属性を動的に変更
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
car = Car("Toyota", "Corolla")
print(vars(car))
# 属性を動的に更新
vars(car).update({"model": "Camry", "year": 2024})
print(vars(car))
実行結果
{'brand': 'Toyota', 'model': 'Corolla'}
{'brand': 'Toyota', 'model': 'Camry', 'year': 2024}
まとめ
vars()
関数はオブジェクトの属性を辞書として取得できる便利な組み込み関数です。デバッグや動的なオブジェクト管理に役立ち、様々なシチュエーションで活用できます。
ポイントのおさらい:
vars(object)
でオブジェクトの属性を辞書形式で取得できるvars()
を引数なしで呼ぶと、ローカルスコープの変数一覧が取得できる- 動的な属性変更にも利用できる
Pythonのデータ管理をより柔軟にするために、ぜひvars()
関数を活用してみてください!