2016-11-28 6 views
1

クラスabaloneは、3つの属性M,IおよびFを持っています。次のようにアクセスしてください:クラス属性の反復

abalone.M 
Out[81]: 
array([[ 0.455 , 0.365 , 0.095 , ..., 0.2245, 0.101 , 0.15 ], 
     [ 0.35 , 0.265 , 0.09 , ..., 0.0995, 0.0485, 0.07 ], 
     [ 0.44 , 0.365 , 0.125 , ..., 0.2155, 0.114 , 0.155 ], 
     ..., 
     [ 0.59 , 0.44 , 0.135 , ..., 0.439 , 0.2145, 0.2605], 
     [ 0.6 , 0.475 , 0.205 , ..., 0.5255, 0.2875, 0.308 ], 
     [ 0.71 , 0.555 , 0.195 , ..., 0.9455, 0.3765, 0.495 ]]) 

作品は素晴らしいです。どのように私はそれらを反復するつもりですか?私の試行

for item in [M, I, F]: 
    abalone.item 
    --------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 
<ipython-input-84-c9c2187c3451> in <module>() 
----> 1 for item in [M, I, F]: 
     2  abalone.item 

NameError: name 'M' is not defined 

残念ながら動作しません。

編集:

for item in ['M', 'I', 'F']: 
    abalone.item 
--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-86-b9d61335686f> in <module>() 
     1 for item in ['M', 'I', 'F']: 
----> 2  abalone.item 

AttributeError: 'Abalone' object has no attribute 'item' 

をしようとすると、いずれかの動作しません。

+0

abalone.Mのタイプは 'array.array'または' list'ですか?申し訳ありません、それは私を混乱させる。 –

+1

数字の配列です。 – sbm

答えて

1

このお試しください:それは、その後、私が知っているように動作しない場合は

for attr, value in abalone.__dict__.items(): 
    print attr,value 

を。

編集(問題の変化に応じて):ここでは

l = ['M','I','F'] 
for attr, value in x.__dict__.iteritems(): 
    if attr in l: 
     print attr,value 

リットルを使用して、アクセスしたい属性のサブセットが含まれます。

+0

申し訳ありません、それはタイプミスでした。私の質問を修正し、不幸にもうまくいかないあなたの提案を試しました。 – sbm

+0

それは大丈夫です。私は私の答えを編集しました。これをテストして、うまくいくはずです。 –

+0

ありがとうございますが、残念ながら私はサブセットを反復しているだけなので、私の場合は役に立ちません。だから私は具体的に上記のコードを取得する必要があります.. – sbm

関連する問題