Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-从包含类值的列表打印_Python - Fatal编程技术网

Python-从包含类值的列表打印

Python-从包含类值的列表打印,python,Python,我试图打印出名为Deck的变量的值,该变量是使用类的值列表: 类卡: 定义初始(自我、适合、价值): 西服 自我价值=价值 西服=[“红心”、“黑桃”、“梅花”、“钻石”] 值=['2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'10'、'J'、'Q'、'K'、'A'] 牌组=[牌(套装,价值)代表套装中的套装,价值代表价值] 但每当我尝试打印时: Deck=[卡片(套装,价值)代表套装中的套装,价值代表价值] 印刷品(甲板) 它给了我: 可以使用自定义的\uuuuuu re

我试图打印出名为Deck的变量的值,该变量是使用类的值列表:

类卡:
定义初始(自我、适合、价值):
西服
自我价值=价值
西服=[“红心”、“黑桃”、“梅花”、“钻石”]
值=['2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'10'、'J'、'Q'、'K'、'A']
牌组=[牌(套装,价值)代表套装中的套装,价值代表价值]
但每当我尝试打印时:

Deck=[卡片(套装,价值)代表套装中的套装,价值代表价值]
印刷品(甲板)
它给了我:


可以使用自定义的
\uuuuuu repr\uuuu
方法覆盖类的打印版本:

class Card:

  def __init__(self,suit,value):
    self.suit = suit
    self.value = value

  def __repr__(self):
    return ' of '.join([self.value, self.suit])     


Suits = ['Hearts','Spades','Clubs','Diamonds']
Values = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']

Deck = [Card(suit,value) for suit in Suits for value in Values]

print(Deck)
结果:


[2颗红桃,3颗红桃,4颗红桃,5颗红桃,6颗红桃,7颗红桃,8颗红桃,9颗红桃,10颗红桃,J颗红桃,Q颗红桃,K颗红桃,A颗红桃,2颗黑桃,3颗黑桃,4颗黑桃,5颗黑桃,6颗黑桃,7颗黑桃,8颗黑桃,9颗黑桃,10颗黑桃,J颗黑桃,Q颗黑桃,K颗黑桃,A颗黑桃,2颗Clubs、俱乐部3、俱乐部4、俱乐部5、俱乐部6、俱乐部7、俱乐部8、俱乐部9、俱乐部10、俱乐部J、俱乐部Q、俱乐部K、俱乐部A、钻石2、钻石3、钻石4、钻石5、钻石6、钻石7、钻石8、钻石9、钻石10、钻石J、钻石Q、钻石K、钻石A]

当要求
print
函数打印对象时,输出为文本。因此,如果对象本身不是文本,
print
需要该对象的一些文本表示

您可以显式地执行此操作(例如,通过一些显式函数调用来获取文本字符串),也可以使用文本表示的神奇方法隐式地执行此操作

显式选项的一个示例:

集合中项目的
:
text=“{0.suit}的{0.deminator}”。格式(项)
打印(“{0}\n.”格式(文本))

为类定义字符串表示方法的示例:

类卡:
...
定义(自我):
text=“{0.suit}的{0.deminator}”。格式(self)
返回文本
定义报告(自我):
text=”“.格式(自)
返回文本
对于集合中的项目:
打印(项目)

有关魔法和文本表示方法,请参阅Python文档。

尝试使用名为tuple的
代码,该代码具有适用于人类的repr:

import collections as ct


suits = "♠ ♣ ♥ ♦".split()
ranks = "2 3 4 5 6 7 8 9 10 J Q K A".split()

Card = ct.namedtuple("Card", "suit rank")
deck = [Card(suit, rank) for suit in suits for rank in ranks]

print(deck)
# [Card(suit='♠', rank='2'), Card(suit='♠', rank='3'), , ...]

这是对象的默认字符串表示形式。若要覆盖该功能,请定义自己的
Card
对象方法。