python - 使用条件创建新实例
问题描述
我试图从数据集中创建实例,只有当它们有新的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()
解决方案
推荐阅读
- arrays - 在 python 中,我想创建一个新数组并添加另一个数组的元素。我不知道我在哪里犯错
- go - 如何在golang程序中使用client-go列出k8s集群中的所有pod?
- android - Android 在应用程序中打开外部存储文件夹
- reactjs - 导航到 chrome 扩展中的默认主路由 (React)
- qt - 如何使用中继器将 PathLine 添加到 ShapePath?
- javascript - Jquery变量(内部点击功能)未全局显示
- c# - 如何使用 WinForms Chart 在烛台图表中查看添加的最后一根蜡烛?
- assembly - 打包和检索打包的位域
- typescript - 如何过滤记录的道具
- python - 从 Django 的一页中获取选定单选按钮的值