2014-12-01 4 views
0

__getitem___ 어떤 속성은 내가 다음 클래스 썼다 :파이썬 클래스 유형 오류 '

class Average(object): 

def __init__(self,invoer): 
    self.regel = invoer 
    self.persons = [] 

def parse_input(self):   
    lengte = self.regel.split('\t')[2] 
    gewicht = self.regel.split('\t')[3] 
    self.lengte = float(lengte) 
    self.gewicht = float(gewicht) 
    return self.lengte, self.gewicht 

def add_person(self): 
    self.persons += [self.lengte, self.gewicht] 

def get_average_bmi(self): 
    total_bmi = 0 
    for i in self.persons: 
     total_bmi += i[0]/i[1] 
    average_bmi = total_bmi/len(self.persons) 
    self.average = average_bmi 
    return self.average 

을 다음과 같이 프로그램이 보인다 :

from BodyMassIndex import Average 
from ipy_lib import file_input 

bestand = file_input().splitlines() 

for i in bestand: 
    bmi = Average(i) 
    bmi.parse_input() 
    bmi.add_person() 
average_bmi = bmi.get_average_bmi() 

입력, 즉 bestand 변수에 제공은 다음과 같습니다 :

Barbara Lerner V 1.54 67 No 
Danny Coronado M 1.84 89 No 
Diana Knox V 1.69 58 Yes 
Penney Rose V 1.56 102 No 
Jessica Richman V 1.58 63 Yes 

parse_input() 메소드는 각 사람의 길이를 취하고, add_person이이를리스트에 추가하고 ge t_average_bmi는 목록 내의 모든 목록의 bmi를 계산하고 그 평균을 계산해야합니다.

그러나, 나는이 오류 얻을 : total_bmi를 + = 내가 [0]/I [1] 형식 오류 : '부동'개체가 어떤 속성이없는 '의 getItem을'

이 코드에 무엇이 잘못 가고 ?

답변

0

당신은 수정하려는 것 add_person() :

def add_person(self): 
    self.persons.append([self.lengte, self.gewicht])