0
我尝试创建类,它将返回值漂亮打印。 我发现这个职位python __str__ for an object 但我仍然不明白我怎么能提高我的班级。返回键和值字典从列表使用__str__
这里是我的类:
class PrintList():
def __init__(self,lista):
self.lista=lista
def __str__(self):
if isinstance(x[0] in self.lista, dict): #for dicts in list
return ','.join(str(item),'->',str(item[x]) for x in item) for item in self.lista
else: # for variables in list
return ','.join(str(x) for x in self.lista)
和bug在第一回:
return ','.join(str(item),'->',str(item[x]) for x in item) for item in self.lista
^
SyntaxError: invalid syntax
我试图得到以下结果: key_dict-> value_dict等
我会使用列表理解而不是生成器表达式; 'str.join()'*更快*。参见[list comprehension without \ [\],Python](http://stackoverflow.com/a/9061024) – 2014-09-26 08:54:16
@MartijnPieters:我知道。我只是使用与OP相同的格式,而没有引入新的概念或脱离主题。如果你看到,OP已经使用了一个生成器表达式,并且我认为将它转换为列表并不合适。 – Abhijit 2014-09-26 08:57:25
*耸肩*。我会添加一个额外的段落,解释列表符合在这里是更好的选择,并链接到雷蒙德的答案,就是这样。 :-) – 2014-09-26 08:59:29