我有下面的代碼,其中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__添加另一個參數,但我也想知道是否可以完成我所問過的事情。 –