类中未使用的Str实现

2024-06-16 13:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

让我们假设我有一个实现str()函数的类。当我现在将这个类的一个对象放入字典并使用字典的str()时,它没有使用这个函数!我做错了什么

class test(object):
    def __str__(self):
        return("I am a dork")
a = test()
print(a)
X = {0:a}
print(str(tuple(sorted(X.items()))))

返回:

I am a dork
((0, <__main__.test object at 0x7fe5204ddbe0>),)

显然,我们的目标是

((0, 'I am a dork'),)

Tags: 对象函数testselfreturn字典objectdef
2条回答

Python中的容器显示表示,而不是字符串转换。您需要实现^{}来影响对象表示

注意__str____repr__扮演不同的角色;该表示法用于调试,而__str__字符串输出用于表示。如果__str__缺失,将使用__repr__,但反之亦然

尝试:

class test(object):
    def __str__(self):
        return("I am a dork")
    def __repr__(self):
        return("I am a dork too")

这里reprdoc

相关问题 更多 >