对于像“diceOutCome2”这样的属性,实际上最好使用带有索引号的列表,比如counter.diceOutCome[2]
. 这使您可以轻松地遍历所有 diceOutcomes 列表,或者counter.diceOutCome[n-1]
在 n 为 5 时引用第 5 个骰子结果之前的结果。
角注可以计算为对象的方法,可以是您之前引用的计数器对象(counter.highHorn(5)
可以评估高角注的输赢counter.diceOutcome[5]
),或者用于表示掷骰结果的对象,其中的列表保存在 diceOutCome 中,如counter.diceOutcome[5].highHorn()
. 或者HighHorn
可以是Bet
;的子类 的一个实例HighHorn
是使用 DiceOutcome 构造的,HighHorn
并将实现一个wins()
在 abstract on 中定义的方法,将Bet
在子类中实现 - 将其评估为HighHorn(counter.diceOutCome[5]).wins()
. 由于 diceOutcomes 都附加到counter
,因此这可能是传递给相关方法的逻辑项,或者是定义这些方法的逻辑项。
通常,如果您开始考虑使用尾随数字定义变量名称,例如,将something1
在您的程序中使用,您必须立即停止并替换为名为 的列表,并使用列表索引(如.something2
something3
somethings
somethings[2]
(注意- 为了便于交流,我使用基于 1 的索引来对应描述 - 实际上,序列中项目的索引是基于 0 的,因此第 5 项实际上将被引用为sequence[4]
,它之前的项目是sequence[4-1], the 1st item being found at
序列[0]`。关键是,这是索引有意义的情况,而不是变量名上的数字后缀。)