我如何让打字检查知道一个对象是 List[int]?
How do I let the typing check know an object is List[int]?
我想让打字检查知道一个对象是一个 List[int],在 PyCharm。
例如,我有以下代码:
def foo(a: List[int]):
print(a)
arr = np.ndarray([1, 2, 3])
arr_list = arr.tolist()
foo(arr_list) # <-PyCharm warning
警告说 Expected type 'List[int]', got 'object' instead
,因为要列出键入提示 returns 对象。
有没有办法让打字检查以某种方式知道 arr_list
的打字,比如 assert all(isinstance(i,int) for i in arr_list)
,这样警告就消失了?
感谢 user2235698 的提示。这解决了问题:
def foo(a: List[int]):
print(a)
arr = np.ndarray([1, 2, 3])
arr_list = arr.tolist()
# this silences the warning
arr_list = typing.cast(List[int], arr_list)
foo(arr_list)
我想让打字检查知道一个对象是一个 List[int],在 PyCharm。
例如,我有以下代码:
def foo(a: List[int]):
print(a)
arr = np.ndarray([1, 2, 3])
arr_list = arr.tolist()
foo(arr_list) # <-PyCharm warning
警告说 Expected type 'List[int]', got 'object' instead
,因为要列出键入提示 returns 对象。
有没有办法让打字检查以某种方式知道 arr_list
的打字,比如 assert all(isinstance(i,int) for i in arr_list)
,这样警告就消失了?
感谢 user2235698 的提示。这解决了问题:
def foo(a: List[int]):
print(a)
arr = np.ndarray([1, 2, 3])
arr_list = arr.tolist()
# this silences the warning
arr_list = typing.cast(List[int], arr_list)
foo(arr_list)