我有很多变量需要创建和引用,例如diceOutCome2,diceOutCome4。。。diceOutCome12、diceOutComeHornHigh、diceOutcomeHorn5等等,我经常需要引用它们,所以我希望将它们存储为全局变量,而不是作为参数传递。在
最重要的是,我也尝试不引用索引号,而是使用名称或属性计数器骰子结果2... 这里不是数字2的结果,而是掷骰子1和1的结果,4将存储骰子总数和2,2,1,3等信息
创建它们的最有效的方法和正确的语法是什么?在
def setGlobalVariables():
counter=[]
for i in range (0, 12):
global counter["count_"+i]=0
对于像“diceOutCome2”这样的属性,实际上最好使用一个带有索引号的列表,比如
counter.diceOutCome[2]
。这允许您轻松地遍历dice结果的所有列表,或者在n为5时将第5个dice结果之前的结果称为counter.diceOutCome[n-1]
。在Horn bets可以作为对象上的方法来计算,要么是您之前引用的counter对象(
counter.highHorn(5)
)可以计算在counter.diceOutcome[5]
上的高角赌注的胜负,要么是用于表示骰子结果的对象,其列表保存在dice outcome中,如counter.diceOutcome[5].highHorn()
。或者HighHorn
可以是Bet
的子类;HighHorn
的一个实例是使用DiceOutcome构造的,HighHorn
将实现一个wins()
方法,该方法在Bet
上抽象定义,在子类中实现,并将其计算为HighHorn(counter.diceOutCome[5]).wins()
。由于diceoutcouts都附加到counter
,因此这可能是传递给相关方法的逻辑项,或者是定义这些方法的逻辑项。在一般来说,如果您开始考虑用尾随数字来定义变量名,例如
something1
,something2
,something3
将在程序中使用,则必须立即停止并替换为名为somethings
的列表,并使用诸如somethings[2]
之类的列表索引访问它们。在(注意-为了便于交流,我使用了基于1的索引来对应描述-实际上,序列中项目的索引是从0开始的,因此第5个项目将真正被引用为
sequence[4]
,它前面的项是sequence[4-1], the 1st item being found at
序列[0]`。关键是,在这种情况下,索引是有意义的,而不是变量名上的数字后缀。)相关问题 更多 >
编程相关推荐