如何限制 python 函数参数仅接受某些固定大小的数组?
我尝试了这个,但它无法编译:
def func(a : array[2]):
与
TypeError: 'module' object is not subscriptable
我是这门语言的新手。
检查函数内部的长度怎么样?在这里我只是提出了一个错误,但你可以做任何事情。
def func(array):
if len(array) != 2:
raise ValueError("array with length 2 was expected")
# code here runs if len(array) == 2
这个问题的答案是...
如果您不介意解压您的参数列表,那么您可以这样做将第二个参数限制为两个元素的固定大小集合。
> def f(a,(b1,b2), c):
b=[b1,b2]
print(a)
print(b)
print(c)
示例:
# ok to call with 2 elem array
> b=[1,2]
> f("A",l,"C")
A
[1, 2]
C
# but falls if call with other size array
> b=[1,2,3]
> f("A",b,"C")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in f
ValueError: too many values to unpack
# btw also ok if call with 2 elem tuple
> f("A",(1,2),"B")
A
[1, 2]
C