問題タブ [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 - python2 と python3 の dict の __repr__()
私は、1 つのコードベース (2.6、2.7、および 3.3+) で、python ライブラリを python 2 から python 2 および 3 にのみ移植しています。残っている主な問題は、多くのテストが次のようなものを使用していることです。
これは python 2 で動作しますが、python3 では例外が発生します:
「異なるテスト」以外に、これらの問題を処理する標準的な方法はありますか? オーバーロード__repr__
?
python - セージで関数を呼び出す際のエラー
SAES_ToStateMatrix([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
それが私に与えるように最初の関数を呼び出すときの人
SAES_FromStateMatrix([[a^3 + a a^3 + a],[a^3 + a a^3 + a]])
しかし、出力をエラーとして渡すことでエラーが発生し" invalid syntax "
たため、このエラーを回避する方法
ここに私のコードがあります
python - ファイルから読み取るときに、クラス初期化子から引用符を削除するにはどうすればよいですか。パイソン
クラス Task への呼び出しを .dat ファイルの配列に格納しています。このファイルを読み込んで、クラス呼び出しを再構築したいと思います。
現在使用しているクラスは次のとおりです。
ファイルからの読み取りは次のとおりです。
ファイルへの書き込みは次のとおりです。
ファイルの内容は次のとおりです。
['Task("class",20)']
「クラス」はタスクの名前です。
問題は 'Task("class",20)' を囲む一重引用符に関係していることは理解していますが、それらを取り除く方法はわかりません。私が得るエラーメッセージは、「strオブジェクトには属性 'name'がありません」という行に沿って何かを言います
次回ファイルを読み取るときにクラスを再構築できるように、これらの引用符を削除するにはどうすればよいですか?
python - getattr がオブジェクトを手動で更新するのと同じように動作しないのはなぜですか?
以下の Python スクリプトを実行すると異なる出力が得られる理由を誰か説明してもらえますか?
getattr(sys.modules['importme'], 'MyClass')
で定義されたカスタム__repr__()
関数を出力しない理由がわかりませんMyClass
。
printtest.py
importme.py
python - __repr__ を使用して新しいオブジェクトを作成する方法は?
これは私が本当に得られないものです。__repr__
出力から新しいオブジェクトを作成するために使用しようとしています。
リストとそれを整理するためのメソッドを含む OrderedSet クラスがあります。このクラスのstrメソッドは
今__repr__
、そこから新しいオブジェクトをインスタンス化する方法で使用することになっています。お気に入りOrderedset second = repr(first)
私はこのようにそれを行うことができますか?
python - ipython と python の出力の違い
python が出力の を出力することは私の理解でしrepr
たが、これは明らかに常にそうであるとは限りません。例えば:
ipython の場合:
パイソンでは:
ipython は出力にどのような変換を適用しますか?
python - Python: カスタム例外を出力するときに最大再帰深度を超えました
次のコードは をスローしRuntimeError: maximum recursion depth exceeded while getting the str of an object
ます。無限再帰は 2 つの異なる方法で解決できますが、それぞれの修正が機能する理由が理解できないため、どちらを使用すればよいのか、またはどちらが正しいのかわかりません。
を削除するsuper
と、コードは実行されますが、何も出力されません。この投稿によると、 Python での __str__ と __repr__ の違い、省略__str__
は呼び出されるため、これは意味__repr__
がありませんが、ここでは発生していないようです。
代わりに、呼び出しを保持しsuper
て追加すると__str__ = __repr__
、期待される出力が得られ、再帰はありません。
無限再帰が存在する理由、各変更が無限再帰を解決する理由、およびある修正が他の修正よりも優先される理由を誰かが説明できますか?