我正在编写一个非常基本的脚本,该脚本根据去年的整个赛季数据来计算NFL球员的幻想足球得分。当我这样做时,我将查看他们今年将缺席的游戏数量,并将折扣系数应用于他们的总积分。
例如。汤姆·布雷迪(Tom Brady)今年将缺席4场比赛,因此他失去了25%的积分。
由于很少有玩家会错过比赛,因此我有一个词典将玩家的名字映射到他会错过的游戏数量。创建玩家时,我会检查他的名字是否在SUSPENSIONS
词典中,如下所示:
if name in SUSPENSIONS.keys():
newTE = TE(name, team, rushingYards, rushingTouchdowns, rushingFumbles, receptionYards, receptionTouchdowns, SUSPENSIONS[name])
我与安东尼奥·盖茨(Antonio Gates)进行了测试,他今年将缺席4场比赛。他的25%折扣未得到应用。我运行上面的代码,然后执行:
print(str(newTE.gamesSuspended))
然后返回0。
这是我的
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)汤姆·布雷迪(Tom Brady)的折扣确实适用,尽管勒凡·贝尔(Le'Veon Bell),安东尼奥·盖茨(Antonio Gates)和大概大多数其他人没有。
2)我的代码知道“ Antonio Gates”是
SUSPENSIONS
词典中的键。由于某种原因,它将gamesSuspended
字段设置为0而不是4(该值对应于字典中他的名字)。为什么是这样?如果能为您解决所有问题提供帮助,
克莱曼
编辑以显示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
... 最佳答案
您正在通过gamesSuspended
来确定玩家的位置,我认为这不是您想要的。
由于构造器中的参数太多,因此有时使用命名参数很有用,以免混淆它们。
newTE = TE(name, team, rushingYards, rushingTouchdowns, rushingFumbles, receptionYards,
receptionTouchdowns, position="TE", gamesSuspended=SUSPENSIONS[name])