1. ホーム
  2. python

[解決済み] Python __str__ とリスト

2022-08-10 11:20:53

質問

Javaでは、もし私が List.toString() を呼び出すと、自動的に toString() メソッドを自動的に呼び出します。例えば、リストがオブジェクトを含んでいる場合 o1 , o2 そして o3 , list.toString() はこのような感じになります。

"[" + o1.toString() + ", " + o2.toString() + ", " + o3.toString() + "]"

Pythonで同様の動作をさせる方法はないでしょうか?私が実装したのは __str__() メソッドを実装したのですが、オブジェクトのリストをプリントアウトするときに、using:

print 'my list is %s'%(list)

はこのような感じです。

[<__main__.cell instance at 0x2a955e95f0>, <__main__.cell instance at 0x2a955e9638>, <__main__.cell instance at 0x2a955e9680>]

どうすれば python に私の __str__() を自動的に呼び出すようにするにはどうしたらよいでしょうか?

どのように解決するのですか?

Pythonのリストで文字列を呼び出すと __repr__ メソッドを呼び出します。 いくつかの項目に対して __str____repr__ は同じです。 その動作が必要なら、そうしてください。

def __str__(self):
    ...
def __repr__(self):
    return self.__str__()