私はPythonで次のステートメントを持っています、ここでoriは文字列です
[ori [ori.rfind('')+ 1:]、ori [:ori.rfind('')]]
ori.rfind('')が2回呼び出されていることがわかりますが、インタプリタは関数を1回だけ評価するのに十分賢いですか?
次のことができます。
s = ori.rfind('') return [ori [s + 1:]、ori [:s]]
しかし、これは2行を使用します。このステートメントを文字列のリストのリスト内包表記で使用するつもりであり、この関数が1行であることを願っています。
この場合、文字列は不変であるため、インタプリタは実際に理解しやすくなります。私の推測では、おそらく通訳は再評価を避けるために賢いことができます。一般に、オブジェクトが不変である場合、インタプリタは十分に賢くなりますか?