問題タブ [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.

0 投票する
2 に答える
165 参照

python - Print はアドホックな __str__() または __repr__() メソッドを使用しません

Python 3.4 で問題が発生しました。ヘルプや説明をいただければ幸いです。

基本的に、別のクラスのインスタンスを返す関数を持つクラスがありますが、後でそのインスタンスを print() してその関数に追加されたものを確認できるように、文字列表現を変更しています。

私が理解していないのは、そのインスタンスのstrおよびreprメソッドを変更できるように見えても、print() は元の表現を引き続き使用するということです。

これは、私が試したことを本質的に示す簡単な例です。

誰かが私にこれを説明してもらえますか? お時間をいただきありがとうございます。

編集:出力を忘れました、ごめんなさい:

編集:説明してくれたMartijn Pietersに感謝します!

そして、私は今、私が望む出力を取得します:

0 投票する
1 に答える
967 参照

python - repr 関数を使用して出力をフォーマットする方法を誰かが説明できますか?

次のコードをお願いします。

変更する出力:

次のようなより良いものに:

Python のドキュメントにはこれの良い例がありますが、それがどのように機能するのか理解できないようです。

このコードは Python のドキュメントからのものです: https://docs.python.org/2/tutorial/inputoutput.html

この repr 関数がどのように機能するか、およびどのように組み込むことができるかについての簡単な説明をいただければ幸いです。ドキュメントや他の同様の質問を表示するたびに意味不明なものが表示されるだけだからです。

ティア

0 投票する
1 に答える
10851 参照

python - Python の逆 repr 関数

文字 ( 0x61 0x62 0xD)を含む文字列があるrepr場合、この文字列の関数は を返し'ab\r'ます。

逆の操作を行う方法はありますか: string 'ab\r'(with characters 0x61 0x62 0x5C 0x72) がある場合、 string を取得する必要があります0x61 0x62 0xD

0 投票する
2 に答える
4267 参照

python - python __repr__メソッドの別々の行に辞書を返す

reprメソッドを使用してクラスで生成された辞書を返す必要があり、別の行で返す必要があります。

私はそれを行うことができる方法はありますか?

期待される:

私が得たもの:

「pprint」を使用できないため、他に方法があるかどうかわかりません。

0 投票する
0 に答える
43 参照

python - Python 辞書 (またはその他の順序付けされていないコンテナー) と __str__ および __repr__: 含まれている要素はどのような順序で出力されますか?

Python 辞書 (またはセット、またはその他の種類の順序付けられていないコンテナー) があり、それに対して__str__orを呼び出す__repr__と、キーおよび/または値の順序はどのようになりますか?

もちろん、「順序付けられていないコンテナー」という名前が示すように、含まれる要素に特定の順序はありません。それでも、含まれる要素が任意の順序で出力される場合、この任意の順序は少なくとも永続的ですか?

  1. コンテナーの文字列表現は常に同じですか (コンテナーまたはその要素について何も変更しない場合)? または、n 番目の呼び出し__repr__または__str__ある時点で、印刷された要素の順序が変更されますか?

  2. まったく同じ内容の辞書を (おそらく別のマシンで) 再作成すると、出力される要素の順序は以前と同じになりますか?

編集: この質問が重複としてマークされているのはなぜですか? 順序が恣意的である理由を尋ねているわけではありません。文字列表現が永続的かどうかを尋ねます。これは、基礎となるハッシュ メカニズム以外にも依存する可能性があります。

0 投票する
2 に答える
3019 参照

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}

インデントを更新した後のコード全体を次に示します。

クラスセット:

エラーが表示されるのはなぜですか:

0 投票する
2 に答える
187 参照

python - Python の shelve モジュールで __repr__ を使用する

shelve モジュールのラッパー クラスを作成していて、それを辞書のように使用するつもりです。コードは次のとおりです。

「辞書のキー」という表現を使用するまで、すべてがうまく機能しているように見えました。これはセッションの例です:

私は何を間違っていますか?