0

可能重复:
如何检查函数的参数?

可能这是重复的问题..对不起..

让我们看下面的例子:

class ClassA(object):
     pass
class ClassB(object):
     pass

def foo(a, b):
    if not isinstance(a, ClassA):
         raise ValueError("1st agrument should be instance of ClassA")
    if not isinstance(b, ClassB):
         raise ValueError("2nd agrument should be instance of ClassB")
    print(a)
    print(b)

2.7 python 中是否有任何注释或__future__模块中的任何东西来注释方法以检查输入变量?

写这些if not isinstance让我很生气:D

4

1 回答 1

1

没有内置的方法来定义函数的参数类型——这部分是设计使然——而不是在传递 classB 时出现“预期的 classA”错误,而是在查找属性时出现错误。然后,您可以在 classB 上定义此属性,并且该函数将使用它最初不是为它设计的类型。

有这样的大小,这里有一个如何编写你所追求的装饰器的例子

于 2012-10-21T13:11:13.700 回答