如何在Python3文件中打印__repr__? (不在shell中)

时间:2016-11-11 21:58:25

标签: python shell magic-methods repr

我知道在您输入>>> object时在Python Shell中显示object.__repr__方法,如果您输入>>> print(object),则会显示object.__str__方法。

但我的问题是,在执行Python文件时是否有一个简短的方法来打印__repr__

我的意思是,在file.py中,如果我使用print(object),它会显示object.__str__,如果我只是输入object,则它不会显示任何内容。

我尝试过使用print(object.__repr__),但会打印<bound method object.__repr__ of reprReturnValue>

或者这不可能吗?

4 个答案:

答案 0 :(得分:2)

如果您只想打印表示而不打印其他内容,那么

print(repr(object))

将打印表示。你的调用出错的地方是缺少的括号,因为以下内容也适用:

print(object.__repr__())

如果您希望将其作为更多信息的一部分并且您使用的是字符串格式,则不需要致电repr(),您可以使用转化标记!r

print('The representation of the object ({0!r}) for printing,'
      ' can be obtained without using "repr()"'.format(object))

答案 1 :(得分:1)

只需使用repr(object)

print(repr(object))

答案 2 :(得分:0)

尝试:

print(some_object.__repr__())
在打印之前需要调用

__repr__,因为它是一种与__file____name__等属性不同的方法,不需要调用(并且不能, 对于这个问题)。 __str__()方法也是如此:您需要使用 - some_object.__str__()而不是some_object.__str__来调用它。

我假设OP指的是带有object一词的通用对象,而不是名为object的实际Python对象,所以我使用了变量名some_object。正如评论中指出的那样,如果您确实object.__repr__(),那么这将引发异常,因为必须在实例上调用__repr__()(即,object().__repr__()将起作用。)

答案 3 :(得分:0)

你可以使用旧的反叛

print(`object`)

在Python 2中,或

print(repr(object))

在Python 2&amp; 3