В следующем фрагменте:
In [1]: x = [0]
In [2]: isinstance(x, list)
Out[2]: True
In [3]: isinstance(x, (list, set))
Out[3]: True
In [4]: isinstance(x, [list, set])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-95dd12d6777a> in <module>()
----> 1 isinstance(x, [list, set])
TypeError: isinstance() arg 2 must be a type or tuple of types
Почему isinstance
в [4]
настаивает на том, чтобы второй аргумент был кортежем, а не просто итерируемым (например, list
или set
)? Странное дизайнерское решение.
isinstance
работает рекурсивно, поэтомуisinstance(1, (list, (tuple, int)))
вернетTrue
. - person DeepSpace   schedule 11.12.2018