Python:方法中对象类型的注释

时间:2012-10-20 19:00:00

标签: python python-2.7

  

可能重复:
  How to check arguments of the function?

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

让我们看看下面的例子:

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

1 个答案:

答案 0 :(得分:1)

没有内置的方法来定义函数的参数类型 - 这部分是通过设计 - 而不是在传递classB时得到“classA expected”的错误,在查找属性时会出错。然后,您可以在classB上定义此属性,该函数将使用最初未设计的类型。

大小为here is an example of how to write the decorator you're after