Создать новые экземпляры с условием - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь создать экземпляры из набора данных, только если у них есть новый 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...