python - 为什么结果总是无?
问题描述
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]
,为什么?
但是,如果我将 'def init (self,starting_cards = None):' 更改为 'def init (self,starting_cards = []):' 它可以给出 '[1,2,3,4]'
解决方案
那是因为你总是在函数中返回新Deck
实例。get_deck()
您应该将Deck
实例作为Player
.
推荐阅读
- sql - SQL聚合和累积求和
- macos - Mix.exs 文件更改 - (SyntaxError) mix.exs:65: unexpected token: "" (column 1, codepoint U+0000)
- c++ - 关于 cv::imwrite 速度的 .bmp 的任何替代方案
- javascript - 按键将数组中的对象推送到不同的数组
- swift - RxTableViewSectionedReloadDataSource
- kubernetes - 将外部 NFS 导出与 kubernetes pod 一起使用
- python - Python正则表达式去除附加到非数字的数字
- memory-management - 如果所有内存都直接映射到内核虚拟地址,用户虚拟地址如何访问物理内存
- regex - 检查单元格是否包含来自另一个单元格的关键字 - Google 表格
- c# - 奇怪的缩放问题