Nam*_*sen 3 python tuples parameter-passing type-hinting python-3.x
有没有办法在参数的类型提示中定义元组或列表的大小?
目前我正在使用这样的东西:
from typing import List, Optional, Tuple
def function_name(self, list1: List[Class1]):
if len(list1) != 4:
raise SomeError()
pass
# some code here
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更精简的方法来做到这一点。
对于列表来说,它没有意义,因为它们是动态的,另一方面,对于元组,定义中的类型数量就是它所包含的元素数量:
from typing import Tuple
example_1: Tuple[int, int] = (1, 2) # This is valid
example_2: Tuple[int, int] = (1, 2, 3) # This is invalid
example_3: Tuple[int, ...] = (1, 2, 3, 4) # This is valid, the ellipses means any number if ints
example_4: Tuple[int, ...] = (1, 'string') # This is invalid
# So in your case if you need 4 you can do something like this
My4Tuple = Tuple[Class1, Class1, Class1, Class1]
def my_function(self, arg1: My4Tuple):
pass
Run Code Online (Sandbox Code Playgroud)
永远记住,这不是在运行时强制执行的
| 归档时间: |
|
| 查看次数: |
4345 次 |
| 最近记录: |