問題タブ [repr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Print はアドホックな __str__() または __repr__() メソッドを使用しません
Python 3.4 で問題が発生しました。ヘルプや説明をいただければ幸いです。
基本的に、別のクラスのインスタンスを返す関数を持つクラスがありますが、後でそのインスタンスを print() してその関数に追加されたものを確認できるように、文字列表現を変更しています。
私が理解していないのは、そのインスタンスのstrおよびreprメソッドを変更できるように見えても、print() は元の表現を引き続き使用するということです。
これは、私が試したことを本質的に示す簡単な例です。
誰かが私にこれを説明してもらえますか? お時間をいただきありがとうございます。
編集:出力を忘れました、ごめんなさい:
編集:説明してくれたMartijn Pietersに感謝します!
そして、私は今、私が望む出力を取得します:
python - repr 関数を使用して出力をフォーマットする方法を誰かが説明できますか?
次のコードをお願いします。
変更する出力:
次のようなより良いものに:
Python のドキュメントにはこれの良い例がありますが、それがどのように機能するのか理解できないようです。
このコードは Python のドキュメントからのものです: https://docs.python.org/2/tutorial/inputoutput.html
この repr 関数がどのように機能するか、およびどのように組み込むことができるかについての簡単な説明をいただければ幸いです。ドキュメントや他の同様の質問を表示するたびに意味不明なものが表示されるだけだからです。
ティア
python - Python の逆 repr 関数
文字 ( 0x61
0x62
0xD
)を含む文字列があるrepr
場合、この文字列の関数は を返し'ab\r'
ます。
逆の操作を行う方法はありますか: string 'ab\r'
(with characters 0x61
0x62
0x5C
0x72
) がある場合、 string を取得する必要があります0x61
0x62
0xD
。
python - python __repr__メソッドの別々の行に辞書を返す
reprメソッドを使用してクラスで生成された辞書を返す必要があり、別の行で返す必要があります。
私はそれを行うことができる方法はありますか?
期待される:
私が得たもの:
「pprint」を使用できないため、他に方法があるかどうかわかりません。
python - Python 辞書 (またはその他の順序付けされていないコンテナー) と __str__ および __repr__: 含まれている要素はどのような順序で出力されますか?
Python 辞書 (またはセット、またはその他の種類の順序付けられていないコンテナー) があり、それに対して__str__
orを呼び出す__repr__
と、キーおよび/または値の順序はどのようになりますか?
もちろん、「順序付けられていないコンテナー」という名前が示すように、含まれる要素に特定の順序はありません。それでも、含まれる要素が任意の順序で出力される場合、この任意の順序は少なくとも永続的ですか?
コンテナーの文字列表現は常に同じですか (コンテナーまたはその要素について何も変更しない場合)? または、n 番目の呼び出し
__repr__
または__str__
ある時点で、印刷された要素の順序が変更されますか?まったく同じ内容の辞書を (おそらく別のマシンで) 再作成すると、出力される要素の順序は以前と同じになりますか?
編集: この質問が重複としてマークされているのはなぜですか? 順序が恣意的である理由を尋ねているわけではありません。文字列表現が永続的かどうかを尋ねます。これは、基礎となるハッシュ メカニズム以外にも依存する可能性があります。
python - __repr__ __str__? を使用すると、Python はリストではなくメモリ アドレスを出力します。
変数 self.list を含む "Set" クラスを作成し、__repr__
and__str__
メソッドを記述してオブジェクトを出力および str() できるようにする必要があります。2 番目のファイル (driver1.py) である「ドライバー ファイル」は Set オブジェクトを作成し、print(str(set_object)) と print(set_object) を呼び出そうとしますが、どちらの呼び出しもメモリ アドレスSet.Set instance at 0x1033d1488>
またはその他の場所のみを出力します。これを変更するにはどうすればよいですか?set_object の内容をフォームに出力したい{1,2,3}
インデントを更新した後のコード全体を次に示します。
クラスセット:
エラーが表示されるのはなぜですか:
python - Python の shelve モジュールで __repr__ を使用する
shelve モジュールのラッパー クラスを作成していて、それを辞書のように使用するつもりです。コードは次のとおりです。
「辞書のキー」という表現を使用するまで、すべてがうまく機能しているように見えました。これはセッションの例です:
私は何を間違っていますか?