擅长:python、mysql、java
<p>对于一个不依赖类显式地<code>register</code>使用<code>number</code>abc进行自身操作的解决方案(因此它可以在旧的NumPy版本和python2.5上工作),您可以使用<a href="https://docs.python.org/2/library/operator.html#operator.index" rel="nofollow noreferrer">^{<cd3>}</a>来测试某个对象是否应该作为整数。(这是一个围绕<code>__index__</code>的包装器,您可以实现它,使对象可用作列表索引。)</p>
<pre><code>def handleThing(x):
try:
operator.index(x)
except TypeError:
pass
else:
return handleInteger(x)
if isinstance(x, basestring):
return handleString(x)
try:
# Would give false positive for strings, but we handled those already.
float(x)
except TypeError:
pass
else:
return handleFloatingPoint(x)
# You might want TypeError here.
raise ValueError('handleThing only handles numbers and strings')
</code></pre>