如何从Python中的self方法获取self对象名称

2024-02-24

我正在尝试找到一种方法来自动打印对象引用名称print object更具体。 假设我有一堂课:

class A:
    def __init__(self):
        self.cards = []

    def __str__(self):
        # return a string representation of A
        return "A contains " ...
    ...

现在每当我创建一个对象时

test = A()

我用print test它会得到类似的东西(不要介意这些点)

A contains ...

我想要实现的是自动打印对象引用名称而不是类名称:

test contains ...

The self.__class__ or self.__name__不会工作,因为它返回一个奇怪的字符串,例如<class '__main__.A'>.

应该怎样__str__来实现这一目标? 提前致谢。


正如对您的问题的评论所述,这是不可能的,也是不明智的,请考虑采用以下方法:

class A:
    def __init__(self, name):
        self.cards = []
        self.name = name

    def __str__(self):
        return '{} contains ...'.format(self.name)

>>> test = A('test')
>>> print test
test contains ...

>>> a = A('hello')
>>> print a
hello contains ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从Python中的self方法获取self对象名称 的相关文章