Python 无论我尝试什么,我都无法打印值,我一直在-->
我正在尝试将卡片c添加到卡片组d,但我无法打印卡片组,而是一直在打印Python 无论我尝试什么,我都无法打印值,我一直在-->,python,Python,我正在尝试将卡片c添加到卡片组d,但我无法打印卡片组,而是一直在打印 您似乎有缩进错误。您的c、d和d.addCardc声明应间隔缩进一次。同样的需要也适用于你的卡牌和甲板类中的所有东西 您似乎有缩进错误。您的c、d和d.addCardc声明应间隔缩进一次。同样的需要也适用于你的卡牌和甲板类中的所有东西 您没有在类函数中引用特定的类实例。更改甲板类定义,如下所示: class Deck(): def __init__(self): self.theCards = []
您似乎有缩进错误。您的c、d和d.addCardc声明应间隔缩进一次。同样的需要也适用于你的卡牌和甲板类中的所有东西
您似乎有缩进错误。您的c、d和d.addCardc声明应间隔缩进一次。同样的需要也适用于你的卡牌和甲板类中的所有东西
您没有在类函数中引用特定的类实例。更改甲板类定义,如下所示:
class Deck():
def __init__(self):
self.theCards = []
def addCard(self, theCard):
self.theCards.append(theCard)
print(self.theCards)
您没有在类函数中引用特定的类实例。更改甲板类定义,如下所示:
class Deck():
def __init__(self):
self.theCards = []
def addCard(self, theCard):
self.theCards.append(theCard)
print(self.theCards)
您应该迭代您的卡并调用它们上的变量,因为打印对象列表只显示特定的内存地址,而不显示属性。而不是: 打印卡片 使用与此类似的循环: 对于卡片组中的卡片。卡片: 普林特瓦尔斯卡德 它打印对象的所有变量及其对应值。我还假设您希望拥有不同玩家的不同牌组,但您的代码当前将在类定义中保存牌列表。因此,使用组调用创建的组类型的所有对象共享相同的卡列表。假设您添加了另一组: 将卡片添加到我的牌组中 打印播放器1 c=Cardsh,[fire,258] d=甲板 d、 addCardc 打印播放器2 c2=Cardit,[水,258] d2=甲板 d2.addCardc2 玩家2的牌组还包括玩家1的牌,反之亦然。建议的代码扩展的打印输出: 玩家1 {'name':'sh','moves':['fire',258]} 玩家2 {'name':'sh','moves':['fire',258]} {'name':'it','moves':['water',258]} 用户“insert random”以前已经提供了解决方案。要使用两个不同的卡片列表获得两个不同的卡片组,必须将卡片列表存储在类实例中,而不是类定义中。下面是整个更新代码: 班级卡: 定义初始自我,名称,移动: self.name=名称 self.moves=列表移动 舱面: 定义初始自我: self.theCards=[] def添加卡自身,卡: 自助卡。附加卡 对于自助卡中的卡: 普林特瓦尔斯卡德 将卡片添加到我的牌组中 打印播放器1 c=Cardsh,[fire,258] d=甲板 d、 addCardc 打印播放器2 c2=Cardit,[水,258] d2=甲板 d2.addCardc2 请注意,使用self而不是Deck为使用Deck调用创建的每个新Deck存储不同的卡片列表。此列表是由初始类构造函数创建的,而不是由类定义本身创建的。 控制台输出: 玩家1 {'name':'sh','moves':['fire',258]} 玩家2 {'name':'it','moves':['water',258]} 我猜这就是你想要的。 带词典的版本: 将卡片添加到我的牌组中 打印播放器1 c={'name':'sh','moves':[fire,258]} d={'theCards':[c]} d中卡片的打印列表卡片['theCards'] 打印播放器2 c2={'name':'it','moves':[water,258]} d2={‘卡片’:[c2]} d2中卡的打印列表卡[“卡片”]
您应该迭代您的卡并调用它们上的变量,因为打印对象列表只显示特定的内存地址,而不显示属性。而不是: 打印卡片 使用与此类似的循环: 对于卡片组中的卡片。卡片: 普林特瓦尔斯卡德 它打印对象的所有变量及其对应值。我还假设您希望拥有不同玩家的不同牌组,但您的代码当前将在类定义中保存牌列表。因此,使用组调用创建的组类型的所有对象共享相同的卡列表。假设您添加了另一组: 将卡片添加到我的牌组中 打印播放器1 c=Cardsh,[fire,258] d=甲板 d、 addCardc 打印播放器2 c2=Cardit,[水,258] d2=甲板 d2.addCardc2 玩家2的牌组还包括玩家1的牌,反之亦然。建议的代码扩展的打印输出: 玩家1 {'name':'sh','moves':['fire',258]} 玩家2 {'name':'sh','moves':['fire',258]} {'name':'it','moves':['water',258]} 用户“insert random”以前已经提供了解决方案。要使用两个不同的卡片列表获得两个不同的卡片组,必须将卡片列表存储在类实例中,而不是类定义中。下面是整个更新代码: 班级卡: 定义初始自我,名称,移动: self.name=名称 self.moves=列表移动 舱面: 定义初始自我: self.theCards=[] def添加卡自身,卡: 自助卡。附加卡 对于自助卡中的卡: 普林特瓦尔斯卡德 将卡片添加到我的牌组中 打印播放器1 c=Cardsh,[fire,258] d=甲板 d、 addCardc 打印播放器2 c2=Cardit,[水,258] d2=甲板 d2.addCardc2 请注意,使用self而不是Deck为使用Deck调用创建的每个新Deck存储不同的卡片列表。此列表是由初始类构造函数创建的,而不是由类定义本身创建的。 控制台输出: 玩家1 {'name':'sh','moves':['fire',258]} 玩家2 {'name':'it','moves':['water',258]} 我猜这就是你想要的。 带词典的版本: 将卡片添加到我的牌组中 打印播放器1 c={'name':'sh','moves':[fire,258]} d={'theCards':[c]} d中卡片的打印列表卡片['theCards'] 打印播放器2 c2={'name':'it','moves':[water,258]} d2={‘卡片’:[c2]} d2中卡的打印列表卡[“卡片”]
默认情况下,当Python打印列表时,它会打印列表元素的名称。对于许多对象,包括自定义类,默认的repr如下所示 您可以通过在类上定义一个_repr_uu方法来覆盖此行为。按照惯例,u_repr_u_u的输出应该是一个字符串,如果将对象传递给您,该字符串将生成您的对象 对于card类,它将如下所示: 班级卡: 定义初始自我,名称,移动: self.name=名称 self.moves=列表移动 定义报告自我: 返回卡{},{}.formatself.name,self.moves 修复缩进后,将此输出提供给脚本: [卡片'sh',['fire',258]]
您还可以定义一个_ustr_uuu方法,以自定义调用strmyobject时对象的显示方式。如果未定义uu str uu,Python将使用u repr uu。默认情况下,当Python打印列表时,它会打印列表元素的名称。对于许多对象,包括自定义类,默认的repr如下所示 您可以通过在类上定义一个_repr_uu方法来覆盖此行为。按照惯例,u_repr_u_u的输出应该是一个字符串,如果将对象传递给您,该字符串将生成您的对象 对于card类,它将如下所示: 班级卡: 定义初始自我,名称,移动: self.name=名称 self.moves=列表移动 定义报告自我: 返回卡{},{}.formatself.name,self.moves 修复缩进后,将此输出提供给脚本: [卡片'sh',['fire',258]]
您还可以定义一个_ustr_uuu方法,以自定义调用strmyobject时对象的显示方式。如果未定义uuu str uuuu,Python将使用uu repr uuu。尝试使用.data。c、 数据。它是一个具有“data”属性的对象,其中包含实际数据。请尝试使用.data。c、 数据。它是一个具有“data”属性的对象,其中包含实际数据。打印对象列表时不调用对象的str,只调用repl。但是你必须小心repl,你已经提到了。作为一个初学者,我将继续使用循环,而不是重写repl。打印对象列表时不会调用对象的str,只有repl是。但是你必须小心repl,你已经提到了。作为一个初学者,我将继续使用循环,而不是重写repl。但是terminal中没有显示缩进错误,terminal中没有显示缩进错误
class Deck():
def __init__(self):
self.theCards = []
def addCard(self, theCard):
self.theCards.append(theCard)
print(self.theCards)