我想在调用对象时返回字典值。
class card:
foo={2:0}
def __init__(self,num):
self._num=card.foo[num]
当我做的时候
bar=card(2)
bar
它返回
<__main__.Card at 0x7f5d60440588>
如何让它返回0?
答案 0 :(得分:0)
您必须扩展__repr__
特殊方法:
class Card:
foo = {2: 0}
def __init__(self,num):
self._num = Card.foo.get(num)
def __repr__(self):
return str(self._num)
答案 1 :(得分:0)
您未访问_num
的{{1}}属性。您需要bar
:
bar._num
Attribute references使用Python中所有属性引用使用的标准语法:obj.name。有效的属性名称是创建类对象时类的命名空间中的所有名称。
答案 2 :(得分:0)
不允许发表评论,所以我只在@Malik Brahimi的回答中编辑了一行(__repr__
而__str__
应该返回字符串,而不是数字):
class Card:
foo = {2: 0}
def __init__(self,num):
self._num = Card.foo.get(num)
def __repr__(self):
return str(self._num)