如何在python中高效地创建全局变量

2024-09-20 06:54:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多变量需要创建和引用,例如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

Tags: 方法名称信息属性counter计数器数字骰子
1条回答
网友
1楼 · 发布于 2024-09-20 06:54:55

对于像“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,因此这可能是传递给相关方法的逻辑项,或者是定义这些方法的逻辑项。在

一般来说,如果您开始考虑用尾随数字来定义变量名,例如something1something2something3将在程序中使用,则必须立即停止并替换为名为somethings的列表,并使用诸如somethings[2]之类的列表索引访问它们。在

注意-为了便于交流,我使用了基于1的索引来对应描述-实际上,序列中项目的索引是从0开始的,因此第5个项目将真正被引用为sequence[4],它前面的项是sequence[4-1], the 1st item being found at序列[0]`。关键是,在这种情况下,索引是有意义的,而不是变量名上的数字后缀。)

相关问题 更多 >