Я пытаюсь создать экземпляры из набора данных, только если у них есть новый espn_player_id
.Если есть строка, которая уже создана как экземпляр, я просто хочу выполнить метод класса.
td
означает общее количество данных и составляет OrderedDict
.
Однако, когда дело доходит до блока else, я получаю сообщение об ошибке,
'str' object has no attribute 'num_games'
Как сделать так, чтобы td[i]['espn_player_id']
распознавался как имя существующего экземпляра для выполнения num_games
?
class Player:
QBR_h = None
QBR_l = 0
QBR_a = 0
ap = 0
ng = 0
def __init__(self,pid,fname,lname):
self.pid = pid
self.fname = fname
self.lname = lname
print(self.fname, self.lname,'Constructed')
def num_games(self):
self.ng = self.ng + 1
print(self.fname,self.lname,'number of games:',self.ng)
def max_QBR(self):
if self.QBR_h == None or self.QBR_h < td[i]['total_QBR']:
self.QBR_h = td[i]['total_QBR']
print(self.QBR_h)
def asdict(self):
return {'fname':self.fname, 'ng':self.ng}
lst_pid = list()
for i in range(len(td)):
print(td[i]['espn_player_id'])
if td[i]['espn_player_id'] not in lst_pid:
lst_pid.append(td[i]['espn_player_id'])
print(lst_pid)
td[i]['espn_player_id'] = Player(td[i]['espn_player_id'], td[i]['first_name'],td[i]['last_name'])
td[i]['espn_player_id'].num_games()
td[i]['espn_player_id'].max_QBR()
else:
td[i]['espn_player_id'].num_games()
td[i]['espn_player_id'].max_QBR()