2017-10-08 6 views
0

イベントに参加するゲストのために(パートナー/子供とともに)かなり標準的なクラスを作成しました。python3はクラスの引数の値を出力します

class Guest: 
    def __init__(self, name, adult, child, infant): 
     self.name = name 
     self.adult = adult 
     self.child = child 
     self.infant = infant 

とそれにいくつかのオブジェクトを追加しました:

adam_s = Guest('Adam Smith', 2, 0, 1) 
sandra_b = Guest('Sandra Bind', 2, 0,1) 
alince_d = Guest('Alice Donovan',2,0,0) 
parents_smith = Guest('Mr&Ms Smith', 2,0,0) 

私は、このクラスに、より多くのオブジェクトを追加することがあります。いずれにしても、ゲストクラスを使用して、すべての対象について大人、子供、幼児の数を合計できるようにしたいと考えています。

私は試しましたが、結果は私が望んでいたものではありませんでした(各属性の実際の値を与えていない)。

for attr,value in vars(Guest).items(): 
    print(attr, value) 

おそらく非常に問題はありませんが、しばらく検索していて、解決策を見つけることができませんでした。

+0

あなたはクラスにオブジェクトを追加していませんが...特定の情報を持つクラスの新しいインスタンスを作成しています。これらのインスタンスを 'guests = [adam_s、sandra_b、alince_d]'などのリストに格納して、これらのインスタンスとパフォーマンス計算などをループすることができます。例えば、 'sum(g.adult for g inゲスト) '大人のゲストのカウントを取得する... –

答えて

0

あなたはこの

sum_adult=[] 

    class Guest: 
     def __init__(self, name, adult, child, infant): 
      self.name = name 
      self.adult = adult 
      self.child = child 
      self.infant = infant 

      sum_adult.append(self.adult) 


    adam_s = Guest('Adam Smith', 2, 0, 1) 
    sandra_b = Guest('Sandra Bind', 2, 0,1) 
    alince_d = Guest('Alice Donovan',2,0,0) 
    parents_smith = Guest('Mr&Ms Smith', 2,0,0) 

    print(sum(sum_adult)) 

出力試すことができます。

8 
0

次を使用することができます。

class Guest: 
    adultCounter = 0 
    def __init__(self, name, adult, child, infant): 
     # your code here 
     Guest.adultCounter +=1 

、その後、あなたは次のように値を呼び出すことができます。

print ('Total adults: {}'.format(Guest.adultCounter)) 
+0

こんにちは!上記は、使用された引数の各インスタンスの数を示しているため、場合によっては有用かもしれません。私は以前の応答が仕事をするようにすべての大人の値の値を合計したかった。とにかく、今後のスクリプトでは必ずインクリメントカウンタを利用していただき、ありがとうございます。 – DevBegin

関連する問題