如何在python中进行类型验证?

时间:2016-09-16 23:31:35

标签: python

(也许b / c我来自C ++世界) 我想验证一些python变量是

list(string)list(dict(int, string))SomethingIterable(string)

有简单统一的方法吗? (而不是编写自定义代码来迭代和验证每个实例..)

我强调我在Python中理解list可以包含不同类型的元素,这正是我要求如何验证仅由某种类型组成的list的原因,例如string

3 个答案:

答案 0 :(得分:4)

在Python中,列表可以由混合类型组成,没有办法像设置列表的“类型”那样。此外,即使你可以,这种“类型”也不会强制执行,并且可能随时发生变化。

答案 1 :(得分:1)

您似乎在寻找一个数组(array.array),而不是列表:

>>> l = [1]
>>> l.append('a')
>>> import array
>>> a = array.array('l')
>>> a.append(3)
>>> a.append('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required (got type str)
>>> a
array('l', [3])

然而,随着您越来越熟悉Python,您将逐渐学习如何以不需要进行类型检查的方式构建代码。就个人而言,我从来没有在Python中使用array.array(除非在这种情况下,我特意使用该模块)。

答案 2 :(得分:-3)

使用typing模块

通常:

from typing import List

def method(value: List[str]):
    pass