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__ |