如何可靠地确定一个对象是否具有numpy类型?
我意识到这个问题与鸭子类型的哲学背道而驰,但是我们的想法是确保一个函数(使用scipy和numpy)永远不会返回一个numpy类型,除非使用numpy类型进行调用。 这是在另一个问题的解决方案中提出的,但是我认为确定对象是否具有numpy类型的一般问题与应将其分开的原始问题相距甚远。
使用内置type函数获取类型,然后可以使用该__module__属性找出定义它的位置:
type
__module__
>>> import numpy as np a = np.array([1, 2, 3]) >>> type(a) <type 'numpy.ndarray'> >>> type(a).__module__ 'numpy' >>> type(a).__module__ == np.__name__ True