私は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]
そうする方法はありますが関数定義(例:その値を返す__repr__
を定義する(例えば、return representation
)?
変数名を表現として表示しますか?同じオブジェクトが2つの異なる変数によって参照されている場合はどうなりますか? – schwobaseggl
'' __init__'関数定義に別のパラメータを使用するだけです。それは明確で使いやすく保守も簡単です。変数名を実際のPythonオブジェクトにリンクするすべてのソリューションは壊れやすく、使い方が簡単ではありません。 – MSeifert
@MSeifertそういうわけで、私は「そうすることができるかどうか」と尋ねていたのです。もちろん、最初に__init__に別のパラメータを追加することもできましたが、私が尋ねたことをやりなおすことが可能かどうかを知りたかったのです。 –