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. ウェブスキャンソフトウェアの原則は何ですか?
- 2. React Nativeの原則は何ですか?
- 3. 原則の原則
- 4. ダウンロード速度テストの原則は何ですか
- 5. 安心の原則
- 6. Pythonのテストファイルに最適な命名規則は何ですか?
- 7. 設計原則
- 8. SOLIDの原則のリファクタリング
- 9. SOLIDプログラミングの原則の例
- 10. ロングポーリングサーバーの原則(クライアントID)
- 11. RMIインターフェイスの設計原則
- 12. コマンドとMVVMの原則 - RelayCommands
- 13. スレッディングとSOLID原則
- 14. AJAXのXMLHttpRequest変数はどのように機能しますか?その活動原則は何ですか?
- 15. 原因は何ですか
- 16. AppEngineのPythonスクリプトでこのimaplibエラーの原因は何ですか?
- 17. CRVAP0237Eエラーの原因は何ですか?
- 18. 「System.IO.IsolatedStorage.IsolatedStorageException」の原因は何ですか?
- 19. 改行の原因は何ですか?
- 20. EventMachine :: ConnectionNotBoundの原因は何ですか?
- 21. JVMTI_ERROR_NULL_POINTERの原因は何ですか?
- 22. 403 rateLimitExceededの原因は何ですか?
- 23. NPEの原因は何ですか?
- 24. HttpHostConnectExceptionの原因は何ですか?
- 25. 2フェーズコミットの原因は何ですか?
- 26. シャドーアクネの原因は何ですか?
- 27. ActiveRecord AssociationCollectionオブジェクトで委譲されるメソッド呼び出しの下の原則は何ですか?
- 28. iPhone上でのプッシュ通知の原則(テストを実行しましたが、今は何ですか?)
- 29. OpenCV SurfFeatureDetector働く原則
- 30. WCF CustomRoleProvider原則権限
Guidoによるとはありません。https://mail.python.org/pipermail/python-dev/2014-March/133118.html –