检查函数参数的最佳方法?[关闭]


问题内容

已关闭 。这个问题是基于观点的。它当前不接受答案。


想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。

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窗体,命令行参数等。在其他任何地方,只要正确记录了您的函数,调用者都有责任传递适当的参数。