私がよく知らないライブラリ (この特定のケースでは Windows API) で ctypes を使用する場合、Windows API は何らかのエラーをスローするのではなく単に Null を返すため、小さなステップごとに失敗をチェックすることに非常に積極的になる傾向があります。
したがって、次のような行がたくさんあります。
myVariableName = windll.user32.SomeWinAPIFuncThatReturnsZeroIfItFails()
if not myVariableName: print "Failed to create myVariableName"
そして、コードを理解している間、私はそれを何千回も繰り返します。
checkSuccess()
上記のチェックを、チェックする変数の名前を単純に受け取る関数にラップできれば、非常に便利です。
の線に沿った何か
def check_success(var_name):
if not var_name:
print "failed to create %s" % var_name # <-- but the actual variable name; not the value
sys.exit()
return True
もちろん、変数名の文字列を手動で渡すこともできますが、簡潔さとボイラープレートのために、1 つの変数名だけを渡すことができると便利です。
うまくいけば、それは理にかなっています!