我想查看以下代码的内存元素的字符串表示形式: https://github.com/odoo/odoo/blob/11.0/addons/website_sale/controllers/main.py#L233
当我打印“keep”时,它在0xb1438fac处给出“odoo.addons.website.controllers.main.QueryURL对象”。
如何将其转换为字符串或可读格式
QueryURL类的原始代码在下面的链接中: https://github.com/odoo/odoo/blob/11.0/addons/website_sale/controllers/main.py#L233
正如您从得到的输出中得到的通知一样,
keep
是类型为QueryURL
的对象。因为它是从已经定义的类生成的自定义对象,所以它缺少__repr__()
或__str__()
方法。这些方法返回一个表示存储在自定义类中的数据的字符串。如果类中缺少这些方法,print
函数将打印内存中存储对象的地址已经存在的类,如
int
或str
已经定义了它们的__repr__()
。因此,无论何时打印int
对象,都要查看它的值,而不是地址要解决此问题,可以采用两种方法:
print(functionWhichReturnsStringOfObject(Object))
__repr__()
方法,其工作方式与上面的函数相同。这样做之后,您只需print(object)
看看source for QueryURL,在我看来,您必须调用url才能获得字符串表示。尝试:
相关问题 更多 >
编程相关推荐