[解決済み] Pythonのリストで__str__について迷う [duplicate].
2022-08-18 07:18:57
質問
Java のバックグラウンドから来た私は、以下のことを理解しています。
__str__
は Python 版の toString のようなものだと理解しています (Python が古い言語であることは認識していますが)。
というわけで、私は小さなクラスと
__str__
メソッドを以下のように定義しました。
class Node:
def __init__(self, id):
self.id = id
self.neighbours = []
self.distance = 0
def __str__(self):
return str(self.id)
それから、いくつかのインスタンスを作成します。
uno = Node(1)
due = Node(2)
tri = Node(3)
qua = Node(4)
さて、これらのオブジェクトの1つを表示しようとしたときに期待される動作は、それに関連する値が表示されることです。これもまた起こることです。
print uno
イールド
1
しかし、以下のようにすると
uno.neighbours.append([[due, 4], [tri, 5]])
で、次に
print uno.neighbours
私は
[[[<__main__.Node instance at 0x00000000023A6C48>, 4], [<__main__.Node instance at 0x00000000023A6D08>, 5]]]
私が期待したところ
[[2, 4], [3, 5]]
私は何を見逃しているのでしょうか?また、それ以外にどんなヒヤヒヤすることをやっているのでしょうか?)
どのように解決するのですか?
Pythonには、オブジェクトを文字列に変換する方法が2種類あります。
str()
と
repr()
. オブジェクトを印刷する場合は
str()
オブジェクトを含むリストを印刷する場合は
str()
を使いますが、リスト自体には
list.__str__()
は
repr()
を呼び出す。
ということで
__repr__()
. 単純に
__repr__ = __str__
をクラス本体の最後に書くとうまくいきます。
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Python string.join(list) が文字列配列ではなく、オブジェクト配列になる。
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] Python __str__ とリスト