python类init返回字典值

时间:2015-04-12 19:32:19

标签: python class dictionary

我想在调用对象时返回字典值。

class card:
    foo={2:0}
def __init__(self,num):
    self._num=card.foo[num]

当我做的时候

bar=card(2)
bar

它返回

<__main__.Card at 0x7f5d60440588>

如何让它返回0?

3 个答案:

答案 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)