我有一个接受参数的函数NBins。我想用标量50或数组对此函数进行调用[0, 10, 20, 30]。我如何识别函数的长度NBins是多少?或换句话说,如果它是标量或向量?
NBins
50
[0, 10, 20, 30]
我尝试了这个:
>>> N=[2,3,5] >>> P = 5 >>> len(N) 3 >>> len(P) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len() >>>
正如你看到的,我不能申请len到P,因为它不是一个数组....有什么样isarray或isscalar在Python?
len
P
isarray
isscalar
谢谢
>>> isinstance([0, 10, 20, 30], list) True >>> isinstance(50, list) False
要支持任何类型的序列,请选中collections.Sequence而不是list。
collections.Sequence
list
注意 :isinstance还支持一个元组类,type(x) in (..., ...)应避免检查,这是不必要的。
isinstance
type(x) in (..., ...)
您可能还想检查 not isinstance(x, (str, unicode))
not isinstance(x, (str, unicode))