は、次のコードを考えてみましょう(ガベージコレクション)デルを使用するか、Noneに再割り当て好むだろうか?あなたは
Q
あなたは
16
A
答えて
22
ガベージコレクションの違いはありません。どちらの場合も、self.fps_display
が指すオブジェクトへの参照が解放されます。どちらを使用するかは、名前がまだ存在するかどうか(現在は別のオブジェクトを指していますが、None
)かどうかによって異なります。
13
属性がfps_display
のオブジェクトがあります。
アトリビュートを奇妙にオプションにしたり、紛失したりしないでください。
ファーストクラスの属性で、合理的に見える場合は、リソースを解放するにはNone
に設定する必要があります。オブジェクトにオプションの属性があり、驚くべき例外が発生するため、属性を削除するのは気が散っています。それはself.fps_displayは `場合はhasattr(自己、 "fps_display")`よりNONE`であれば `行くしやすい(ときれい)だから
self.fps_display = None
関連する問題
- 1. あなたは
- 2. あなたは
- 3. あなたは
- 4. あなたは
- 5. あなたは
- 6. あなたは
- 7. あなたは、IOS
- 8. あなたはJavascript
- 9. あなたはQuickCheck
- 10. クラッシュメッセージ:あなたは
- 11. あなたはパンダ
- 12. あなたはJS
- 13. あなたはビットバケット
- 14. はあなたが
- 15. あなたはUILabel
- 16. あなたはユーザタイプ
- 17. あなたはXAML
- 18. は、なぜあなたはカーネル
- 19. は、なぜあなたはOpenMPIの
- 20. あなたはNodeJSに
- 21. あなたはTkinterのボタン
- 22. はあなたに窓に
- 23. あなたはWebアプリケーション
- 24. C#のウェブブラウザあなたは
- 25. ユーザーはあなたが
- 26. あなたはそれが
- 27. ペイパルサンドボックスエラー:あなたはPayPalの
- 28. あなたはggplot2のgeom_bar
- 29. アンドロイドは:あなたがサークル
- 30. あなたはALTER VIEWと
私は通常、NONE''への割り当てのために行きます。いくつかの異なる意味で 'None'が必要な場合は例外です(しかし' not present 'を示すために 'Ellipsis'を使用します)。 –
実際、delはガベージコレクションプロセスを直接呼び出さないため、refcounterを減らし、変数をガベージスペースにぶら下げて、コレクタがクリーンアップするようにします。 – Red15
@ Red15:正しい。 –