任意のディクショナリ キーを使用してメタデータを格納in
し、元のオブジェクト タイプでテストに合格できるクラスを作成しました。
class DictKey:
def __init__(self, key):
self.hashkey = hash(key)
self.member = key
def __hash__(self):
return self.hashkey
def __repr__(self):
return 'DictKey(' + self.strkey + ')'
def __cmp__(self, o):
return cmp(self.member, o)
d = {}
key = DictKey('hello')
d[key] = 'world'
print key.hashkey
print hash('hello')
print key in d
print 'hello' in d
print DictKey('hello') in d
出力を生成します:
840651671246116861
840651671246116861
True
True
True
ここで、文字列「hello」が与えられた場合、その文字列から一定時間で作成された DictKey のインスタンスを取得する必要があります。
if 'hello' in d:
#need some way to return the instance of DictKey so I can get at it's member
tmp = d.getkey('hello')
tmp.member