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

时间:2013-03-31 20:43:18

标签: python class printing dictionary

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

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

什么能打印出来:

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

我应该使用什么来正确打印。这是我试图访问的词典:

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

我正在尝试访问t1和t2。

1 个答案:

答案 0 :(得分:1)

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

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

class MyClass:

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

__repr__

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

你好,这是一个测试

注意:
这个方法没有实现str(MyClass());要做到这一点,你必须制作一个名为

的方法
__str__