我已将nba数据集导入名为nba的变量中。
这些是我的课程:
class Player():
def __init__(self, data_row):
self.player_name = data_row[0]
class team():
def __init__(self,team_name):
self.team_name = team_name
self.roaster = []
for x in nba:
if x[3]==self.team_name:
self.roaster.append(Player(x))
我想要的是将团队中的每个玩家存储到团队对象中。
spurs = team("TOT")
但是当我运行代码时,我得到一个类对象列表如下:
print(spurs.roaster)
[<__main__.Player at 0x2211b2d06a0>,
<__main__.Player at 0x2211b2d06d8>,
<__main__.Player at 0x2211b2d0630>,
<__main__.Player at 0x2211b2d0588>,]
如何检索对象属性?我试过了:
spurs.roaster.player_name
但它提出了一个错误:
AttributeError: 'list' object has no attribute 'player_name'
你的team.roaster attr是一个列表,所以你不能通过密钥访问它,你应该将其更改为dict或者只是迭代它:
class Player():
def __init__(self, data_row):
self.player_name = data_row[0]
def __str__(self):
return self.player_name
你得到的错误是一种自我解释,qazxsw poi确实是一个列表。 qazxsw poi属性属于此列表中的项目。要访问这些属性,您必须浏览列表。
for roaster in spurs.roaster:
print(roaster.player_name)