在Python中打印对象
问题描述:
我试图打印这些car_object[objectname]
对象,但不知道如何去做。 我也有一个Cars类。当我做print(car_object[objectname])
时,我得到ObjectmeA160 <__main__.Cars object at 0x027FB970>
。我究竟做错了什么?在Python中打印对象
def __iter__(self):
car_object = {}
cursor = self._db.execute('SELECT IDENT, MAKE, MODEL, DISPLACEMENT,
POWER, LUXURY FROM CARS')
for row in cursor:
car_object = {}
objectname = 'Object'+str(row['IDENT'])
car_object[objectname] = Cars(ident = row['IDENT'], make = row['MAKE'],
model = row['MODEL'], disp = row['DISPLACEMENT'], power = row['POWER'], luxury = row['LUXURY'])
print(car_object[objectname])
yield dict(row)
class Cars:
def __init__(self, **kwargs):
self.variables = kwargs
def set_Variable(self, k, v):
self.variables[k] = v
def get_Variable(self, k):
return self.variables.get(k, None)
答
的<__main__.Cars object at 0x027FB970>
是自定义对象的标准字符串不实现自己的.__str__()
hook。您可以通过实施该方法对其进行定制:
class Cars:
# ....
def __str__(self):
return 'Car instance with variables: {!r}'.format(self.variables)
这取决于*完全*在Cars类。它有一个'.__ str __()'吗? – 2013-02-28 21:36:10
@Martijn Pieters增加了Cars类......在这种情况下,__str __()如何工作? – engr007 2013-02-28 21:39:20
您是否在print()语句之前打印了其他内容? '__ main__.Cars对象在0x027FB970>'用于'Cars'类,前面的部分不是。 – 2013-02-28 21:39:54