擅长:python、mysql、java
<p>检查它是否实现了适当的抽象基类:</p>
<pre><code>def handleThing(x):
import numbers
if isinstance(x, numbers.Integral):
return handleInteger(x)
elif isinstance(x, numbers.Real):
return handleFloatingPoint(x)
elif isinstance(x, basestring):
return handleString(x)
raise ValueError('handleThing only handles numbers and strings')
</code></pre>
<p>使用python 2.7和numpy 1.12:</p>
<pre><code>>>> all([isinstance(t(1.0), numbers.Integral) for t in (np.int, np.int32, np.uint32, np.int64, numpy.uint64)])
True
>>> all([isinstance(t(1.0), numbers.Real) for t in (float, np.float32, np.float64, np.float128)])
True
</code></pre>
<p>请注意,<code>complex</code>数字不是实数,您应该用<code>numbers.Complex</code>来测试它。你知道吗</p>