我正在使用pygame在python中进行射击游戏,并且对将对象传递给函数的正确方法有疑问。
在加入游戏时,游戏中的每个玩家都将被分配一个团队。有一个叫做团队的班级,可以跟踪团队的状态(分数,玩家数量等)。团队对象存储在列表中。有时,函数需要查看和/或修改团队对象。我想知道以下哪两种方法是将团队对象传递给函数的更好方法。
方法1:
每个团队对象都有一个名为teamId的整数属性。每个teamId都是独一无二的。如果另一个函数需要访问团队对象,它将通过teamId传递,搜索团队列表,直到找到具有相应teamId的对象,然后使用该对象。
示例:
def functionThatNeedsTeam(teamId):
team = getTeamById(teamId)
doSomething()
return
functionThatNeedsTeam(teamId)
方法2:
如果一个函数需要访问一个团队对象,它将被传递给团队对象本身。
示例:
def functionThatNeedsTeam(team):
doSomething()
return
functionThatNeedsTeam(teamObject)
我已经看过这些方法在我看过的各种pygame项目中使用过,并且想知道哪一个更好。任何帮助表示赞赏。
答案 0 :(得分:1)
您应该将函数传递给它所需的数据。
是否可以使用ID?然后你应该将其作为参数传递。否则,通过团队,或者如果它只使用团队的一个属性,请考虑传递它。
大部分时间做的事情导致代码更少是正确的。