タイトルがクレイジーに見えることはわかっていますが、本当です。これが私の苦境です。まず、私はまだ Python の初心者ですので、ご配慮ください。変数が存在するかどうかをテストしようとしています。これで、変数は yaml で解析されたファイルから取得されます。このコードを試すたびに、
if not name['foo']:
print "No name given."
return False
Python は期待どおりに動作し、false を返します。しかし、このコードに変更しようとすると、
try:
name['foo']
except:
print "ERROR: No name given."
raise
例外は発生しません。私は検索して検索しましたが、これを説明できる質問やサイトを見つけることができませんでした. 私の唯一の考えは、パーサーが例外ハンドラーを「騙している」ということですが、それは私には意味がありません。
解析中のドキュメントの名前フィールドに空白がないことを確認しました。フィールドの形式は次のとおりです。
*name: foo
*ver: bar
私が言ったように、行間の空白とともに foo が完全に削除されたことを確認しました。誰かが助けてくれれば、それは大歓迎です。
編集:
そして、if文の負論理についてお詫び申し上げます。関数は一連のチェックを通過する必要があります。すべてのチェックが実行されたことを確認するために考えられる最善の方法は、最後に true を返し、個々のチェックが失敗した場合は false を返すことでした。