问题:如何以下列格式返回地图的字符串表示形式:{k1:v1,k2:v2,...,kN:vN} ??基本上我该如何定义__repr __?
我会这样做:format = {k1:v1,k2:v2,...,kN:vN} strForm = str(form) 打印(strForm)...
讲义:
我的代码(测试并运行良好):
class Map :
def __init__( self) :
self._key = list()
self._value = list()
def __len__( self, key) :
return len(self._key)
def __contains__( self, key) :
if key in self._key :
return True
else:
return False
def __setitem__( self, key, value) :
if key in self._key :
pos = self._key.index(key)
self._value[pos] = value
else :
self._key.append(key)
self._value.append(value)
def __getitem__( self, key) :
assert key in self._key
keypos = self._key.index(key)
return self._value[keypos]
def clear( self) :
self._key = list()
self._value = list()
return
def keys( self) :
return self._key
def values( self ) :
return self._value
def __repr__( self ):
答案 0 :(得分:3)
如果您真的想为自己创建字典中的所有内容,我会按以下方式编写__repr__
方法
"{%s}" % (", ".join(["%s:%s" % (k,v) for k, v in zip(self._key, self._value)]))
答案 1 :(得分:1)
我会覆盖__str__
或__repr__
,如下所示:
def __repr__(self):
return '{%s}' % ', '.join(['{}:{}'.format(k, v) for k, v in zip(self._key, self._value)])