問題タブ [python-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 関数の引数を変更すると、その関数に渡されたメインの値が反映されるのはなぜですか?
Python を使用して BLACKJACK ゲームを作成しようとしました (実際には Python を学習しています)。現在、賭けコマンドをセットアップしていません (アカウント クラスに記述されています)。Account クラスからのみ名前を取得します。
メイン ファイル: blackjack.py と、ファイル内の 2 つのクラス: Deckofcards.py、account.py があります。アカウント クラスから名前にアクセスするだけなので、ここで長い混乱を招くことはありません。
ブラックジャック.py:
Deckofcards.py :
問題:
手札に ACE があり、手札の値が 21 より大きい場合、handValue
関数(DeckofCards クラスにあります) でwhile 条件がそのまま実行されます。問題は、そのwhile
条件が実行された後playershand
(メイン ファイルで宣言されている)、このhandValue
関数に渡したところが空になることです。それは、実際にはメイン オブジェクト自体hand.pop(0)
から値が飛び出しているように見えます (私にはそう思われます)。playershand
その後ヒットを押すと、新しいカードが 1 枚出て、他のすべてのカードが飛び出します。なぜそうなのかわかりません。
ヒット時(ユーザーがヒットを入力):実際にはplayershand
(プレイヤーの手のカード、それはリストです)を関数showCards
(メインファイルにもあります)に渡し、引数アイテムとして受け取りhandValue
、クラスの関数に渡しDeckOfCards
ます。
では、なぜそれが起こっているのですか?私はplayershandを引数として他の関数に渡していますが、handValueクラスのhandオブジェクトにしかアクセスできないplayershandにpop()関数はどのように影響しますか?
テスト用の完全なコードがgithub リポジトリにあり、フォルダ blackjack にファイルがあります