擅长:python、mysql、java
<p>一种可能是按精确的顺序尝试各种类型,如果这些类型都不起作用,则默认为<code>str</code>。E、 g.:</p>
<pre><code>def what_type(s, possible_types=((int, [0]), (float, ()))):
for t, xargs in possible_types:
try: t(s, *xargs)
except ValueError: pass
else: return t
return str
</code></pre>
<p>当然,当您使用want与Python完全相同的语法约定时,这一点尤其可取,例如,接受<code>'0x7e'</code>作为<code>int</code>以及{<cd4>},依此类推。如果需要不同的语法约定,那么应该对字符串<code>s</code>执行解析,不管是通过REs还是通过其他方式。在</p>