我正在编写一个非常基本的脚本,根据去年的全季数据来计算NFL球员的梦幻足球分数。当我这样做的时候,我会看看他们今年会错过的游戏数量,并将折扣因子应用到他们的总积分上。
E.g。汤姆布拉迪今年将缺席4场比赛,因此他失去了25%的积分。
由于很少有玩家会错过游戏,我会有一本字典,将玩家的名字映射到他将错过的游戏数量。当我创建玩家时,我会检查他的名字是否在SUSPENSIONS
字典中,如此:
if name in SUSPENSIONS.keys():
newTE = TE(name, team, rushingYards, rushingTouchdowns, rushingFumbles, receptionYards, receptionTouchdowns, SUSPENSIONS[name])
我和安东尼奥盖茨一起测试了这个,他今年将缺席4场比赛。他的25%的折扣没有得到应用。我运行上面的代码然后执行:
print(str(newTE.gamesSuspended))
然后回来。
这是我的SUSPENSIONS
词典:
SUSPENSIONS = {"Antonio Gates": 4, "Ahmad Bradshaw": 1, "Trey Watts": 4, "Tom Brady": 4, "Josh Gordon": 16, "Le'Veon Bell": 2, "LeGarrette Blount": 1}
一些有趣的事情:
1)尽管Le'Veon Bell,Antonio Gates和大多数其他人没有,但Tom Brady的折扣确实得到了应用。 2)我的代码知道“Antonio Gates”是SUSPENSIONS
词典中的关键词。出于某种原因,它将gamesSuspended
字段设置为0而不是4(与字典中的名称对应的值)。这是为什么?
任何帮助整理这个将非常感激, bclayman
编辑以显示TE.py:
from Player import *
from constants import *
class TE(Player):
def __init__(self, name, team, rushingYards, rushingTouchdowns, rushingFumbles, receptionYards, receptionTouchdowns, position="TE", gamesSuspended=0):
super().__init__(name, team, rushingYards, rushingTouchdowns, rushingFumbles, gamesSuspended)
self.receptionYards = receptionYards
self.receptionTouchdowns = receptionTouchdowns
self.position = "TE"
def calculatePoints(self):
return (super().calculatePercentageOfSeason() * (super().calculatePoints() + POINTS_PER_RECEPTION_YARD * self.receptionYards + POINTS_PER_RECEPTION_TOUCHDOWN * self.receptionTouchdowns))
def toString(self):
return "position: " + self.position + " " + super().toString() + " rushing yards: " + str(self.rushingYards) + " rushing touchdowns: " + str(self.rushingTouchdowns) + " rushing fumbles: " + st r(self.rushingFumbles) + " reception yards: " + str(self.receptionYards) + " reception touchdowns: " + str(self.receptionTouchdowns)
所以TE(...)
是Tight End类的构造函数。如果gamesSuspended
变量未绑定,则将其初始化为0(因为它是可选参数)。但我确实传递了gamesSuspended
......
答案 0 :(得分:3)
您正在通过gamesSuspended
播放器的位置,这是我认为您不想要的。
在构造函数中有如此多的参数,有时使用命名参数会使它们混淆不清。
newTE = TE(name, team, rushingYards, rushingTouchdowns, rushingFumbles, receptionYards,
receptionTouchdowns, position="TE", gamesSuspended=SUSPENSIONS[name])