class Deck(object):
def __init__(self,starting_cards = None):
self._cards = starting_cards
def get_cards(self):
if self._cards==None:
return []
else:
return self._cards
def add_cards(self,new_cards):
if self._cards == None:
self._cards = []
self._cards.extend(new_cards)
else:
self._cards.extend(new_cards)
class Player(object):
def __init__(self,name):
self._name= name
def get_deck(self):
return Deck()
如果我输入:
a = Player('a')
b = [1,2,3,4]
a.get_deck.add_cards(b)
a.get_deck.get_cards
它只是返回[]
,但是应该是[1,2,3,4]
,为什么?你知道吗
但如果我改变了 'definit(自我,启动卡=无):' 到 'definit(自我,起始卡片=[]):' 它可以给出“[1,2,3,4]”
这是因为您总是在
get_deck()
函数中返回新的Deck
实例。 您应该将Deck
实例作为Player
的成员变量。你知道吗第二个阿兰菲的评论。您的
get_deck
函数返回一个牌组,因此调用a.get_deck.add_cards(b)
将首先返回牌组,并将b
牌组添加到此牌组,但此牌组不会存储在任何位置。你知道吗你能做到的
xyqrz = a.get_deck()
然后xyqrz.add_cards(b)
并调用xyqrz.get_cards()
。你知道吗好像你从来没有储存过一副牌。每次调用getDeck时,它看起来都在创建一个新的deck对象。你知道吗
相关问题 更多 >
编程相关推荐