2016-03-31 7 views
0

その値によってクラス変数を呼ぶのですか"は、どのように私は、私は、名前のリストによってランダムである、クラス変数「name」を持っている</p> <pre><code>class Man(object): def __init__(self, name, age) self.name = "dylan" self.age = 4 </code></pre> <p>は、今私はディラン」で、年齢を呼び出したい[OK]を

だから私は基本的に"ディラン ".ageをしたい。

どうすればいいですか?その値によってクラスの変数を呼び出しますか?

答えて

1

を返すゲッターを作成し、インスタンス変数ではないクラス変数です。そうであれば、すでにインスタンス "dylan"への参照がない限り、アクセスする方法はありません。

作成したすべてのインスタンスへの参照を保存する辞書を作れますか? men["dylan"] = Man("dylan", 42)

次に、men["dylan"].ageと書くことができます。

+0

これはうまくいくでしょう:) – Poli

-1

それは「名前」のように私には見える年齢

getAge 
{ 
    return self.age; 
} 
+0

私はクラスの外にそれを呼びたい、f.ex私が持っている場合。 man1 = Man( "dylan"、2)と "dylan"と入力して "2"と呼んでいます – Poli

1

これは、各名前が一意である場合にのみ機能します。

まず、オブジェクトクラスに年齢と名前を返す2つのアクセサメソッドを作成します。

def get_name(self): 
    return self.name 

def get_age(self): 
    return self.age 

次に、リスト内の各オブジェクトを反復処理するforループを使用してメソッドを作成します。オブジェクト名を呼び出し、探している名前と比較し、一致する場合は年齢を返します。

def find_age_of(sought_name): 
    for obj in obj_list: 
     if (obj.get_name().lower() == sought_name.lower()): #'.lower' negates case differences 
      return sought_age = obj.get_age() 

最後に、パラメータとして名前を使用して、このメソッドを呼び出します。

sought_name = 'dylan' 
sought_age = find_age_of(sought_name) 
+0

ありがとうございました。 Steve Pitchersが私の目的のために良いアイデアかもしれないと示唆したように辞書を作成する。 :) – Poli

関連する問題

 関連する問題