可能这是重复的问题..对不起......
让我们看看下面的例子:
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
答案 0 :(得分:1)
没有内置的方法来定义函数的参数类型 - 这部分是通过设计 - 而不是在传递classB时得到“classA expected”的错误,在查找属性时会出错。然后,您可以在classB上定义此属性,该函数将使用最初未设计的类型。
大小为here is an example of how to write the decorator you're after。