当将 ctypes 与我不熟悉的库一起使用时(在这种特定情况下,Windows API),我倾向于非常积极地检查每个小步骤是否存在故障,因为 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
当然,我可以手动传入一个变量名字符串,但是为了简洁和样板的缘故,我可以只传入单个变量名就很酷了。
希望这是有道理的!