擅长:python、mysql、java
<ol>
<li>别这样!;)</li>
</ol>
<p>但如果你还想,我建议你有一个中间类或函数来处理这个问题:</p>
<p>伪代码:</p>
<pre><code>def printTheNumber(num):
print num
def intermediatePrintTheNumber(input):
num_int_dict = {'one':1, "two":2 ....
if input.isstring():
printTheNumber(num_int_dict[input])
elif input.isint():
printTheNumber(input)
else:
print "Sorry Dave, I don't understand you"
</code></pre>
<p>如果这是<code>pythonic</code>我不知道,但是如果必须的话,我会解决它,当然,需要对输入进行更多的检查以确认它是有效的。在</p>
<p>当谈到你的评论时,你提到语义相似性,即<code>"one"</code>和{<cd3>}可能意味着相同的事情。在</p>
<p>你要问,这种转换应该在哪里进行。在</p>
<p>这取决于你的系统设计,但是我可以告诉你,它不应该在我称为<code>printTheNumber</code>的同一个函数中完成,因为一个非常简单的原因,那就是这将赋予这个函数很大的责任。在</p>
<p>根据输入的复杂程度,它可以是<code>integer 1</code>或{<cd6>},或者,在更糟的情况下,<code>"one"</code>,甚至可能更糟{<cd8>}。这应该由一个只负责处理映射的数据库来处理。在</p>
<p>我把它分开,这样我就有一个函数来处理字符串“一”、“二”。。。一个处理整数,第三个函数检查输入是否可以转换为整数。在</p>
<p>在我看来,如果你必须对这种复杂性采取措施,那么对于设计中的一个<code>fundamental</code>缺陷有一个<strong>警告</strong>,但你似乎意识到了这一点,所以我就不继续讨论了。在</p>