Pythonで「EAFP原理を使用する」とはどういう意味ですか?例を挙げてください。 glossaryからPythonのEAFPの原則は何ですか?
答えて
:
許可よりも許しを求めることが容易。この共通のPythonコーディングスタイルは、有効なキーまたは属性の存在を前提としており、仮説が誤っている場合は例外をキャッチします。このクリーンでファーストなスタイルは、多くの
try
とexcept
ステートメントが存在することが特徴です。この技術は、Cのような他の多くの言語に共通するLBYL styleと対照的です。
たとえば、辞書キーにアクセスしようとするとします。
EAFP:
try:
x = my_dict["key"]
except KeyError:
# handle missing key
LBYL:
if "key" in my_dict:
x = my_dict["key"]
else:
# handle missing key
LBYLバージョンは二回、辞書内のキーを検索している、とも少し読みにくく考えられるかもしれません。
短い例です。 –
強化されたもう一つの利点は、競争条件の回避です...例えば、単にファイルを開こうとするなど、あなたがそれを手に入れることができます。あなたが*それを得ることができるかどうかを見るのではなく、その後それを取得しようとすると、チェックとアクセスattempの間のごくわずかな時間で、あなたはそれを得ることができます。 –
Pythonは、キーが存在しないときにハンドラが単に 'x'にデフォルト値を代入している場合、それらの両方を避ける方法も提供します:' x = mydict.get( 'key') 'は' None '' key''が 'my_dict'になければ'; '.get( 'key'、
- 1. AFNetworkingのレジューム原則は何ですか?
- 2. React Nativeの原則は何ですか?
- 3. ウェブスキャンソフトウェアの原則は何ですか?
- 4. "タイムトラベルデバッガ"の原則は何ですか?
- 5. 原則の原則
- 6. Codepad.orgのウェブサイトの原則は何ですか?
- 7. ダウンロード速度テストの原則は何ですか
- 8. 安心の原則
- 9. 保護の原則
- 10. Pythonのテストファイルに最適な命名規則は何ですか?
- 11. 設計原則
- 12. SOLIDプログラミングの原則の例
- 13. 開封の原則の例
- 14. SOLIDの原則のリファクタリング
- 15. ロングポーリングサーバーの原則(クライアントID)
- 16. 移行、スキーマ、DRYの原則
- 17. InnoDB取引の原則
- 18. RMIインターフェイスの設計原則
- 19. 機能プログラミングの原則
- 20. RESTの原則リソース更新
- 21. IoTハブのデバイス原則
- 22. コマンドとMVVMの原則 - RelayCommands
- 23. Git:Convention over Configurationの原則?
- 24. インターフェイス分離原則 - Javaの
- 25. AJAXのXMLHttpRequest変数はどのように機能しますか?その活動原則は何ですか?
- 26. コードレビュー:これはrxjsの原則ですか?
- 27. Django:DRY原則とUserPassesTestMixin
- 28. スレッディングとSOLID原則
- 29. これは、単一責任の原則
- 30. 原因は何ですか
Guidoによるとはありません。https://mail.python.org/pipermail/python-dev/2014-March/133118.html –