如何打印出类的元素

2024-04-29 09:45:54 发布

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

我刚开始学习python,现在我需要打印出类的元素/对象/实例的名称,这是我的代码:

class Delicious : 
    sweet = 0
    sour = 0

apple = Delicious()
kiwi = Delicious()
litchi = Delicious()

bracket = [apple, kiwi, lichi]

print(bracket)

我在终端上运行了它,它打印出来: [<;main.Delicious object位于0x1019d9940>;,<;main.Delicious object位于0x1019d9978>;,<;main.Delicious object位于0x1019d99b0>;] 如何使其打印applekiwilitchi?你知道吗

其他答案对我来说太难了,有人能简单地回答吗?你知道吗


Tags: 对象实例代码ltgt名称元素apple
1条回答
网友
1楼 · 发布于 2024-04-29 09:45:54

实现此功能的方法是从globals()获取实例名称,然后从__str__返回:

class Delicious : 
    sweet = 0
    sour = 0

    def __str__(self):
        for k, v in globals().items():
            if v == self:
                return k

    def __repr__(self):
        return str(self)

现在打印将返回您定义的名称:

apple = Delicious()

print(apple)
apple

打印包含对象的list将调用它们的__repr__,因此您也可以定义__repr__以返回__str__的结果,或者调用print(*bracket)以在使用其__str__函数的打印调用中解压列表:

print(bracket)
[apple, kiwi, lichi]  

print(*bracket)
apple, kiwi, lichi

但是这没有实际意义,在Python中,名称只是分配给对象的标签,通过使用print并打印名称,您不会得到关于底层对象的任何信息。你知道吗

相关问题 更多 >