問題タブ [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.
python - Python、組み込みid()のオブジェクトメソッドとは?
Python の場合:
len(a)
で置き換えることができますa.__len__()
str(a)
orはorrepr(a)
で置き換えることができますa.__str__()
a.__repr__()
==
は__eq__
、+
は__add__
、など
を取得する同様の方法はありid(a)
ますか? そうでない場合、使用せずに python オブジェクトの一意の ID を取得する回避策はありますid()
か?
編集:追加の質問: そうでない場合は? を定義しない理由はあります__id__()
か?
python - Python での非常に大きな辞書のパフォーマンスの向上
最初に空の辞書を初期化し、for ループ (約 110,000 キー、各キーの値はリストであり、ループでも増加) で要素を辞書に追加すると、次のように速度が低下することがわかりました。 forループが行きます。
問題は、ディクショナリが初期化時にキーの数を認識しておらず、非常にスマートな処理を行っていないため、おそらくストレージの衝突が頻繁に発生し、速度が低下することです。
キーの数とそれらのキーが正確に何であるかがわかっている場合、Pythonで辞書(またはハッシュテーブル)をより効率的に機能させる方法はありますか? キーを知っていれば、ハッシュ関数をスマートに設計し(完全なハッシュ?)、事前にスペースを割り当てることができることを漠然と覚えています。
python - Python の cmp_to_key 関数はどのように機能しますか?
この関数hereに出会いました。
これがどのように実装されるかについて私は困惑しています-key
によって生成された関数はcmp_to_key
、特定の要素が他のすべての対象要素とどのように比較されるかをチェックせずに、特定の要素がどの「位置」であるべきかをどのように知るのでしょうか?
python - str は Python でどのように実装されていますか?
空の文字列が非常に多くのバイトを使用するのはなぜですか? これらの40バイトに何が格納されているか知っている人はいますか?
python - *args 構文を使用する引数リストで末尾のコンマが SyntaxError になるのはなぜですか?
*args
Python で末尾のコンマを使用できないのはなぜですか? 言い換えれば、これは機能します
しかし、これはそうではありません
これは、Python 2 と Python 3 の両方に当てはまります。
python - @property デコレータは Python でどのように機能しますか?
組み込み関数がどのように機能するかを理解したいと思いますproperty
。私を混乱させるのはproperty
、デコレーターとしても使用できることですが、組み込み関数として使用する場合にのみ引数を取り、デコレーターとして使用する場合には使用しません。
この例はドキュメントからのものです:
property
の引数は、、、getx
およびドキュメント文字列です。setx
delx
以下のコードでproperty
は、デコレータとして使用されています。そのオブジェクトはx
関数ですが、上記のコードでは、引数にオブジェクト関数の場所がありません。
x.setter
この場合、デコレータとデコレータはどのようにx.deleter
作成されますか?
python - モジュール全体よりもモジュールから関数をインポートする方が時間がかかるのはなぜですか?
検討:
モジュール全体ではなく Dispatch 関数だけをインポートすると、かなり時間がかかります。単一の関数を取得するためのオーバーヘッドが非常に悪い理由を誰かが説明できますか? ありがとう!
python - __slots__ を持つクラスで __setattr__() を定義できますか?
を定義するクラスがあるとします__slots__
:
それを定義できます__setattr__()
か?
Foo
がないので、__dict__
何を更新しますか?
python - 0x7FFFFFFF に制限されたスライス インデックス
Python (2.7.4) でスライスを使って遊んでいます:
すべてが期待どおりに動作するようです:
ただし、スライス インデックスは 0x7FFFFFFF に制限されているようです。
スライス インデックスが通常の値と同じlong
整数昇格の対象にならないのはなぜですか? int
これに対する回避策はありますか?