0

作成して参照する必要がある変数がたくさんあります。たとえば、diceOutCome2、diceOutCome4... diceOutCome12、diceOutComeHornHigh、diceOutComeHornFive などです。常にそれらを参照する必要があるため、それらを渡すのではなく、グローバル変数として保存したいと考えています。パラメータとして。

最も重要なことは、インデックス番号で参照するのではなく、counter.diceOutCome2... 2 のような名前やプロパティでそれらを参照しようとしているということです。ここで 2 は 2 番の結果ではなく、1 と 1 のサイコロを振った結果です。 2,2,1,3情報など

それらを作成する最も効率的な方法と正しい構文は何ですか?

def setGlobalVariables():
    counter=[]
    for i in range (0, 12):
        global counter["count_"+i]=0
4

1 に答える 1

3

「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のインスタンスはHighHornDiceOutcomeを使用して構築され、サブクラスで実装されるように、で抽象的に定義されHighHornたメソッドを実装します-として評価します。diceOutcomesはすべてにアタッチされているため、これは関連するメソッドに渡す論理アイテム、またはそれらのメソッドを定義する論理アイテムである可能性があります。wins()BetHighHorn(counter.diceOutCome[5]).wins()counter

一般に、変数名を末尾の数字で定義することを考え始めた場合、たとえば、、がプログラムsomething1で使用される場合は、すぐに停止して、というリストに置き換え、 。などのリストインデックスを使用してそれらにアクセスする必要があります。something2something3somethingssomethings[2]

-コミュニケーションを容易にするために、説明に対応するために1ベースのインデックスを使用しています-実際には、シーケンス内のアイテムへのインデックスは0ベースであるため、5番目のアイテムは実際にはsequence[4]その前のアイテムとして参照されますはsequence[4-1], the 1st item being found atsequence[0]`です。要点は、これは、変数名の数字の接尾辞ではなく、インデックスが意味をなす場合です。)

于 2012-09-02T02:41:27.290 に答える