クラスをインポートせずに、クラスで定義されている変数のリストを取得するにはどうすればよいですか?
vars(obj)
__doc__
、__file__
、__name__
、__package__
、os
、pdb
などの不要なブリルチン変数を除いて、クラス内のすべての変数を返します。
クラスをインポートせずに、クラスで定義されている変数のリストを取得するにはどうすればよいですか?
vars(obj)
__doc__
、__file__
、__name__
、__package__
、os
、pdb
などの不要なブリルチン変数を除いて、クラス内のすべての変数を返します。
class
変数またはインスタンス変数を取得するには、いくつかの方法があります。'__builtin__'
組み込み関数を 2 つのアンダースコア文字 ( )で囲むことを強制するコーディング規則を活用します。
class foo:
baz = 51
def __init__(self):
self.bar = 42
>>> vars(foo)
{'__doc__': None,
'__init__': <function __init__ at 0x02A35B70>,
'__module__': '__main__',
'baz': 51}
>>> {k:v for k,v in vars(foo).items() if k[:2]!="__" and k[-2:]!="__"}
{'baz': 51}
>>> obj = foo()
>>> vars(obj)
{'bar': 42}
ドキュメントを見ると、vars が使いたいものなのだろうか
引数がない場合、vars() は locals() のように機能します。locals ディクショナリへの更新は無視されるため、locals ディクショナリは読み取りにのみ役立つことに注意してください。
SOでこの質問が表示されますが、それはあなたが望むもののようです。
間違っていたら教えて