【发布时间】:2013-11-29 23:27:51
【问题描述】:
在下面的示例中,我想通过调用类A 的set_x() 函数来更改d 的a1 键。但我看不到如何访问 dict 中的密钥。
#!/usr/bin/env python
class A(object):
def __init__(self, data=''):
self.data = data
self.x = ''
def set_x(self, x):
self.x = x
def __repr__(self):
return 'A(%s:%s)' % (self.data, self.x)
def __eq__(self, another):
return hasattr(another, 'data') and self.data == another.data
def __hash__(self):
return hash(self.data)
a1 = A('foo')
d = {a1: 'foo'}
print d #{A(foo:): 'foo'}
我想更改d,以便d 将打印为{A(foo:word): 'foo'}。当然,以下不起作用。我也不想重新分配相同的值。有人知道通过调用密钥的成员函数来修改密钥的方法吗?谢谢。
a2 = A('foo')
a2.set_x('xxxx')
d[a2]='foo'
print d
【问题讨论】:
标签: python class dictionary key