Pythonでフィールド名を取得する方法は?
Pythonでは、次の方法でフィールド名を取得できます:
- 関数 dir() を使ってください。
class MyClass:
field1 = 'value1'
field2 = 'value2'
fields = [attr for attr in dir(MyClass) if not callable(getattr(MyClass, attr)) and not attr.startswith('__')]
print(fields) # ['field1', 'field2']
- 変数()
class MyClass:
field1 = 'value1'
field2 = 'value2'
obj = MyClass()
fields = list(vars(obj).keys())
print(fields) # ['field1', 'field2']
- 辞書
class MyClass:
field1 = 'value1'
field2 = 'value2'
obj = MyClass()
fields = list(obj.__dict__.keys())
print(fields) # ['field1', 'field2']
これらの方法は、通常のクラスのインスタンスオブジェクトに適用されますが、組み込みのタイプや組み込みの関数などの特殊なオブジェクトには適用されない場合があります。