1

Python では、カスタム オブジェクトをディクショナリ キーとして使用すると、非常に読みにくい出力が得られる可能性があります。これは小さな例です:

class myClass(object):
    def __init__(self,foo,bar):
        self.foo = foo
        self.bar = bar

item = myClass(1,2)
myDict = {}
myDict[item] = 10 

print myDict
{<__main__.myClass object at 0x01998FD0>: 10}

オブジェクトが多いと、この辞書は読めなくなります。代わりにオブジェクトの名前を表示したい:

{'item':10}

これを達成する方法は?

4

1 に答える 1

3

__repr__の定義myClass:

>>> class myClass(object):
...     def __init__(self,foo,bar):
...         self.foo = foo
...         self.bar = bar
...     def __repr__(self):
...         return 'myClass({0.foo},{0.bar})'.format(self)
... 
>>> item = myClass(1,2)
>>> item
myClass(1,2)
>>> myDict = {}
>>> myDict[item] = 10
>>> myDict
{myClass(1,2): 10}
于 2013-08-21T08:43:07.157 に答える