問題タブ [python-internals]

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 投票する
1 に答える
368 参照

python - Python で stderr をオーバーライドした場合の影響

次のコードにより、Python がクラッシュしました。

そのようなコードを書く本当の理由がないことはわかっていますが、なぜクラッシュしているのか疑問に思っていました。
私の最初の推測は、printコマンドstdoutがオーバーライドされているために失敗し、例外を発生させようとしているときに、オーバーライドされているために別の例外が発生したということstderrでした。

そのため、例外を発生させようとしているときにスタック オーバーフローが発生します。

ここでバックグラウンドで実際に何が起こっているのか、誰か説明できますか?
これはスタックオーバーフローですか?

0 投票する
4 に答える
1775 参照

python - Python の int 関数のパフォーマンス

Python の組み込み関数intは、値が既に整数であっても、送信された値を変換しようとしますか?

より簡潔に:変換アルゴリズムによってと の間int('42')にパフォーマンスの違いはありますか?int(42)

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

python - PythonでNoneが最小なのはなぜですか?

Python None から学んだこと:

None is frequently used to represent the absence of a value

リストに入れて数字と文字列でソートすると。次の結果が得られました。これは、最小の数値であることを意味します。

逆行する:

通常の並べ替え:

python sorted 関数は None でどのように機能していますか?

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

python - 複合オブジェクトでのpythonガベージコレクタの動作

一部のパーツがまだ参照されている場合、Pythonガベージコレクターは複合オブジェクトをクリーンアップしますか

例えば

A[0]ガベージコレクションされますか?

コードで同じことを確認する方法はありますか?

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

python - Python:実行時に名前を評価する方法

名前が定義されていない場合とバインドされていない場合は、実行時に と がそれぞれ表示されNameErrorます。UnboundLocalErrorしかし、実行時に名前の評価がどのように行われるのかは明確ではありません。私は次のことを想定しています:

コードスニペットの例を検討してください

bar関数が呼び出されると、新しい実行フレームが作成されます。このフレームを としbar_frameます。bar_frame.f_localディクショナリに含まれる要素はありません。ただしbar_frame.f_back.f_locals、4 つの名前と値のペアが含まれています。など

私の理解:名前評価には次のアルゴリズムがあります。

  1. で検索しようとしてnameいますcurrentframe.f_locals

    1.1currentframe.f_localsグローバル名前空間に対応し、適切な名前が見つからない場合はスローするNameError

    1.1 適切な名前が見つかり、境界がある場合は返すcurrentframe.f_locals[name]

    1.2 適切な名前が見つかり、無制限の場合はUnboundLocalNameエラーをスローします。

  2. で検索しようとしてnameいますcurrentframe.f_back.f_locals

私の理解を確認してください。

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

python - self = None は何をしますか?

入ってくるasyncioパッケージのソースコードを読んでいます。self = Noneメソッドの最後にステートメントがあることに注意してください。それは何をするためのものか?

インスタンスが消去されると思いましたが、次のテストではそうではありません。

0 投票する
3 に答える
346 参照

python - locals() の呼び出しで参照が追加されるのはなぜですか?

以下の動作がわかりません。

  • locals()新しい参照はどのように発生しますか?
  • gc.collect で削除されないのはなぜですか? locals()私はどこにも結果を割り当てませんでした。

バツ

出力は次のとおりです。

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

python - Python: 複数の割り当てと個別の割り当ての速度

私は自分のコードからもう少しパフォーマンスを絞り出そうとしています。最近、この Python wiki ページを閲覧しているときに、次の主張を見つけました。

複数の割り当ては、個別の割り当てよりも遅くなります。たとえば、「x,y=a,b」は「x=a; y=b」よりも遅くなります。

好奇心が強い、私はそれをテストしました(Python 2.7で):

順序を変えて何度か繰り返しましたが、複数の割り当てスニペットは、個別の割り当てよりも一貫して少なくとも 30% 優れたパフォーマンスを発揮しました。明らかに、変数の割り当てを含むコードの部分が重大なボトルネックの原因になることはありませんが、それでも私の好奇心は刺激されます。ドキュメントが別の方法で提案しているのに、なぜ複数の代入は個々の代入より明らかに速いのですか?

編集:

2 つ以上の変数への代入をテストしたところ、次の結果が得られました。

傾向はほぼ一貫しているようです。誰でも再現できますか?

(CPU: インテル Core i7 @ 2.20GHz)