私はこの質問の複数のインスタンスをこのように見てきましたが、デフォルトの引数を持たないので、私が間違っていることを正確に特定できません。前のデータを保持するPythonオブジェクト?
What am I doing wrong? Python object instantiation keeping data from previous instantiation?
#Table.py
class Table:
def __init__(self, players):
self.deck = Deck()
そして、これは主
t = Table(2)
print len(t.deck.cards)
t = Table(2)
print len(t.deck.cards)
である私は、これは48を毎回印刷する期待が、代わりにそれは
48 and then 96
なぜこれがあるを印刷しますか?毎回このメンバ変数をオーバーライドするべきではありませんか?
#Deck.py
from Card import *
import random
class Deck:
suits = ['H','C','D','S']
numbers = [2,3,4,5,6,7,8,9,10,11,12,13,14]
cards = []
def __init__(self):
for num in self.numbers:
for suit in self.suits:
c = Card(num,suit)
self.cards.append(c);
random.shuffle(self.cards)
Card.py
class Card:
def __init__(self, num, suit):
self.num = num
self.suit = suit
def __repr__(self):
return str(self.num) + str(self.suit)
def __str__(self):
return str(self.num) + str(self.suit)
投稿してくださいコードをDeck.py – Penn
ために私はあなたがDeck' 'で' cards'と呼ばれるクラス変数を持っていると思いますか? – PRMoureu
@Pennありがとう:) – k9b