关于python:在使用print时,如何为对象提供更有用的字符串表示?

How can I give my objects a more useful string representation when using print?

本问题已经有最佳答案,请猛点这里访问。

我正在创建一个名为makeTrigger的函数,它接受一个in变量并更新一个字典,但我有一个问题,那就是我试图访问dict中的obj,我用str()得到这个函数:

1
<ps6.SubjectTrigger object at 0x101d36fd0> and <ps6.TitleTrigger object at 0x101dbc0d0>

什么让它打印这个:

1
SubjectTrigger('world') and TitleTrigger('Intel')

我应该用什么来正确打印这个?下面是我要访问的dict:

1
{'t1': SubjectTrigger('world'), 't2': TitleTrigger('Intel'), 't3': PhraseTrigger('New York City')}

我正在尝试进入T1和T2。


这个问题肯定是重复的。––––––-

要更改对象的表示形式,必须在对象的类定义中创建一个方法。

1
2
3
4
class MyClass:

    def __repr__(self):
        return"Hello ,this is a test"

这个

1
__repr__

方法返回一个字符串,打印函数将使用该字符串来表示对象,因此如果创建MyClass对象,然后打印它,则输出将

你好,这是个测试

注:此方法不实现str(myClass());若要执行此操作,必须使另一个方法调用

1
__str__