例如,如果您声明以下函数:
>>> def fun(a, b):
... a.pop()
... a.pop()
... b.add(a.pop())
... return b
...
这个函数会接收任何类型的数据,但是让我们只想接收类型为'set'的参数,因为在这个函数中由于某种原因我需要使用方法add()和pop()在任何'集'中都可以找到它。我怎么能说该函数只接受'set'类型的参数?
答案 0 :(得分:2)
我想如果你想分配一个类型。您可以在函数中执行此操作:
if not isinstance(item, set):
raise TypeError()
如果没有,您的代码将在非法操作发生时引发异常。这是合理的。或者,如果您不想要例外,可以将代码包装在try...except
中:
try:
...
except:
...
答案 1 :(得分:1)
您可以使用isinstance()
检查类型:
>>> def fun(a, b):
... if not (isinstance(a, set) and isinstance(b, set)):
... raise TypeError("Please only call this function with sets as the arguments")
... a.pop()
... a.pop()
... b.add(a.pop())
... return b
答案 2 :(得分:0)
使用以下内容:
if isinstance(item, set):
...
此函数返回布尔值。
答案 3 :(得分:0)
isinstance是一种方式,正如其他人已经描述的那样。这自然需要与良好的自动化测试相结合。
你也可以使用Cython我相信,它有函数/方法参数的可选类型声明。