检查函数参数的最佳方法?[关闭]
问题内容:
已关闭 。这个问题是基于观点的。它当前不接受答案。
想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。
2年前关闭。
我正在寻找一种检查Python函数变量的有效方法。例如,我想检查参数的类型和值。是否有用于此的模块?还是应该使用装饰器之类的东西或任何特定的习惯用法?
def my_function(a, b, c):
"""An example function I'd like to check the arguments of."""
# check that a is an int
# check that 0 < b < 10
# check that c is not an empty string
问题答案:
最Python化的习惯用法是清楚地 记录
函数期望的内容,然后尝试使用传递给函数的所有内容,让异常传播或捕获属性错误并引发异常TypeError
。应尽可能避免类型检查,因为这与鸭式打字不符。可以根据上下文进行价值测试。
验证真正有意义的唯一地方是系统或子系统的入口点,例如Web窗体,命令行参数等。在其他任何地方,只要正确记录了您的函数,调用者都有责任传递适当的参数。