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

时间:2014-05-10 11:04:47

标签: python class python-2.7 self

我正试图找到一种方法,只用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 ...

self.__class__self.__name__无效,因为它会返回奇怪的字符串,如<class '__main__.A'>

如何实现__str__来实现这一目标? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

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

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