我有下面的代码,其中info
参数可以是任何东西(STR,INT,列表等):有没有办法让一个类对象通过持有它的变量名来表示自己?
class MyClass():
def __init__(self, info):
self.info = info
object_1 = MyClass("Whatever 1")
object_2 = MyClass("Whatever 2")
object_3 = MyClass("Whatever 3")
my_list = [object_1, object_2, object_3]
print(my_list)
如果你运行它,你会得到以下结果:
[<MyClass object at 0x7f**********>, <MyClass object at 0x7f**********>, <MyClass object at 0x7f**********>]
但我想print(my_list)
打印此:
[object_1, object_2, object_3]
有没有办法这样做,不增加其它参数到__init__
函数定义(例如(例如return representation
)?
您想要显示变量名称作为表示?!?如果同一个对象被两个不同的变量引用会怎么样? – schwobaseggl
只需使用“__init__'函数定义的另一个参数”。这很明显 - 易于使用和维护。所有将变量名称链接到实际Python对象的解决方案都将变得脆弱而且不易使用。 – MSeifert
@MSeifert这就是为什么我问“如果有可能这样做”。当然,我最初可以为__init__添加另一个参数,但我也想知道是否可以完成我所问过的事情。 –