I have two classes Player
and LineUp
, one is used within the other (shown below). I am trying to update my LineUp
class after I have already instantiated it.
class Player:
def __init__(self, player_df):
self.name = player_df["Name + ID"]
self.position = player_df["Position"]
self.salary = player_df["Salary"]
self.score = player_df["DFS Total"]
self.game_info = player_df["Game Info"]
self.team = player_df["TeamAbbrev"]
class LineUp:
def __init__(self, qb: Player, rb1: Player, rb2: Player, wr1: Player, wr2:Player, wr3: Player, te: Player, flex: Player, dst:Player):
self.qb = qb
self.rb1 = rb1
self.rb2 = rb2
self.wr1 = wr1
self.wr2 = wr2
self.wr3 = wr3
self.te = te
self.flex = flex
self.dst = dst
def get_salary(self):
return self.qb.salary + self.rb1.salary + self.rb2.salary + self.wr1.salary + self.wr2.salary + self.wr3.salary + self.te.salary + self.flex.salary + self.dst.salary
def get_total(self):
return self.qb.score + self.rb1.score + self.rb2.score + self.wr1.score + self.wr2.score + self.wr3.score + self.te.score + self.flex.score + self.dst.score
def __len__(self):
return 9
def __getitem__(self, i):
if i == 0:
return self.qb
elif i == 1:
return self.rb1
elif i == 2:
return self.rb2
elif i == 3:
return self.wr1
elif i == 4:
return self.wr2
elif i == 5:
return self.wr3
elif i == 6:
return self.te
elif i == 7:
return self.flex
elif i == 8:
return self.dst
def __str__(self):
return f'{self.qb.name}, {self.rb1.name}, {self.rb2.name}, {self.wr1.name}, {self.wr2.name}, {self.wr3.name}, {self.te.name}, {self.flex.name}, {self.dst.name}'
So I start with a lineup:
my_lineup = LineUp(Player(player1_data), ..., Player(playerX_data))
I then want to update player 1 in my_lineup
, so I try to assign
my_lineup[0] = Player(new_player1_data)
Ideally, I'd like to do this by indexing since I am planning to loop through them. For example:
for j in range(len(my_lineup)):
if x and y and z:
my_lineup[j] = Player(new_player_data)
else:
continue
Now when I print my_lineup
I want to see the new player with the rest of the old already assigned players. Basically trying to replace Players in the LineUp while maintaining my_lineup
.