Pythonでクラスの属性に順番にアクセスする方法


Pythonでクラスの属性にfor文などで順番にアクセスすることはできるのでしょうか？




ちょっと質問が漠然としていてどのようにfor文でアクセスしたいのは不明ですが、下記のようなコードを書いてみました。

まず属性の名前を取り出して、その後その名前でforを回して属性の値を取り出しています。

[code]

    class Hoge:
      def __init__(self):
        self.ii = "foo"
        self.jj = "bar"
    
    hoge = Hoge()
    hogeKeys = hoge.__dict__.keys()
    
    print(hogeKeys)
    
    for key in hogeKeys:
      print(getattr(hoge, key))
    
[/code]

実行結果:

[code]

    dict_keys(['ii', 'jj'])
    foo
    bar
    
[/code]

値を変更したいのであれば下記のような感じです

[code]

    class Hoge:
      def __init__(self):
        self.ii = "foo"
        self.jj = "bar"
    
    hoge = Hoge()
    hogeKeys = hoge.__dict__.keys()
    
    for key in hogeKeys:
      setattr(hoge, key, "set" + key)
    
    for key in hogeKeys:
      print(getattr(hoge, key))
    
[/code]

## 参考資料

  * [python - How to access object attribute given string corresponding to name of that attribute - Stack Overflow](https://stackoverflow.com/questions/2612610/how-to-access-object-attribute-given-string-corresponding-to-name-of-that-attrib)
  * [methods - How to get instance variables in Python? - Stack Overflow](https://stackoverflow.com/questions/109087/how-to-get-instance-variables-in-python)




ちょっと質問が漠然としていてどのようにfor文でアクセスしたいのは不明ですが、下記のようなコードを書いてみました。

まず属性の名前を取り出して、その後その名前でforを回して属性の値を取り出しています。

[code]

    class Hoge:
      def __init__(self):
        self.ii = "foo"
        self.jj = "bar"
    
    hoge = Hoge()
    hogeKeys = hoge.__dict__.keys()
    
    print(hogeKeys)
    
    for key in hogeKeys:
      print(getattr(hoge, key))
    
[/code]

実行結果:

[code]

    dict_keys(['ii', 'jj'])
    foo
    bar
    
[/code]

値を変更したいのであれば下記のような感じです

[code]

    class Hoge:
      def __init__(self):
        self.ii = "foo"
        self.jj = "bar"
    
    hoge = Hoge()
    hogeKeys = hoge.__dict__.keys()
    
    for key in hogeKeys:
      setattr(hoge, key, "set" + key)
    
    for key in hogeKeys:
      print(getattr(hoge, key))
    
[/code]

## 参考資料

  * [python - How to access object attribute given string corresponding to name of that attribute - Stack Overflow](https://stackoverflow.com/questions/2612610/how-to-access-object-attribute-given-string-corresponding-to-name-of-that-attrib)
  * [methods - How to get instance variables in Python? - Stack Overflow](https://stackoverflow.com/questions/109087/how-to-get-instance-variables-in-python)

