Python 在控制台中调用时,类的默认打印方法是什么?

Python 在控制台中调用时,类的默认打印方法是什么?,python,Python,在Python交互控制台(IDLE、IPython等)中,如果我自己输入变量名,我将获得打印该变量的等价物 In [1]: foo = {'a':1, 'b':2} In [2]: foo Out [2]: {'a':1, 'b':2} In [3]: print(foo) Out [3]: {'a':1, 'b':2} 我希望将此功能合并到容器类中,如: class Foo(): def __init__(self, bar): self.bar = bar

在Python交互控制台(IDLE、IPython等)中,如果我自己输入变量名,我将获得打印该变量的等价物

In [1]: foo = {'a':1, 'b':2}
In [2]: foo
Out [2]: {'a':1, 'b':2}
In [3]: print(foo)
Out [3]: {'a':1, 'b':2}
我希望将此功能合并到容器类中,如:

class Foo():
    def __init__(self, bar):
        self.bar = bar
    def __mysteryfunction__(self)
        print(self.bar)
我希望类像以前一样打印,但我得到:

In [1]: foo = Foo({'a':1, 'b':2})
In [2]: foo
Out [2]: <__main__.foo at 0x1835c093128>
[1]中的
:foo=foo({'a':1,'b':2})
在[2]中:foo
出[2]:

我已经搜索了几乎所有我能想到的可能被称为什么的排列,但没有找到相同的问题。这是我希望的类方法,还是控制台解释器中内置的某种方法?如果是后者,是否可以修改?

对于
print x
x.\uu str\uu
。 对于返回对象时REPL中的输出,
x.\uuuu repr\uuuu


阅读和函数。

这是类的
\uuu str\uu
方法

从:

object.\uuuu str\uuuuuu(self)

由str(object)和内置函数format()和print()调用,以计算对象的“非正式”或可良好打印的字符串表示形式。返回值必须是字符串对象

例如:

class Foo:
    def __init__(self, bar):
        self.bar = bar

    def __str__(self):
        return 'My name is foo and my bar is ' + self.bar

foobar = Foo('high')

print(foobar)  # My name is foo and my bar is high

分别使用
\uuu str\uuuu
\uu repr\uuuu
的神奇方法进行
打印
和REPL。我还应该注意,我知道调用函数,但想知道是否有一种方法可以直接使用
foo
而不是
foo()
。完美的,repr就是我想要的。根据您的回答,在问题末尾添加了完整答案。谢谢