問題タブ [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.

0 投票する
0 に答える
37 参照

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 にファイルがあります