Python vars() 関数
vars()は Python でオブジェクトの属性を返すための__dict__組み込み関数です。
vars()オブジェクトのすべての書き込み可能な属性を含む辞書を返します。__dict__ を持たない__dict__オブジェクトに対しては、TypeError 例外が発生します。
単語の意味: vars 是 variables(变量)的缩写。
基本構文とパラメータ
構文形式
vars(object)
パラメータの説明
- パラメータ object:
- 型:任意のオブジェクト
- 説明:属性を取得するオブジェクト。
関数の説明
- 戻り値: オブジェクトの
__dict__辞書を返します。 - 注意: 引数なしの場合は次と同等です。
locals()。
実例
例1:オブジェクトの属性を表示
実例
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# オブジェクトの __dict__ を表示
print(vars(p))
# 出力: {'name': 'Tom', 'age': 20}
# 辞書にアクセス
print(vars(p)["name"]) # 出力: Tom
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# オブジェクトの __dict__ を表示
print(vars(p))
# 出力: {'name': 'Tom', 'age': 20}
# 辞書にアクセス
print(vars(p)["name"]) # 出力: Tom
実行結果の予想:
{'name': 'Tom', 'age': 20}
Tom
コードの解説:
- vars() はオブジェクトのインスタンス属性の辞書を返します。
- 辞書を介して直接属性にアクセスできます。
例2:モジュールとクラスの __dict__
実例
# モジュールの __dict__
import os
print(len(vars(os))) # 出力: os モジュールの属性数
# クラスの __dict__(インスタンス属性は含まない)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# 出力: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
import os
print(len(vars(os))) # 出力: os モジュールの属性数
# クラスの __dict__(インスタンス属性は含まない)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# 出力: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
実行結果:
vars() はオブジェクトの構造を理解するのに役立ちます。
vars()デバッグや動的な属性アクセスによく使用されます。
その他の拡張
Python3 組み込み関数