我正试图找到一种方法,只用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__
来实现这一目标?
提前谢谢。
答案 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 ...