我知道在您输入>>> 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>
或者这不可能吗?
答案 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