<p>我试图用<strong>is</strong>比较两个字符串。一个字符串由函数返回,另一个字符串则在比较中声明。<strong>是</strong>测试对象标识的,但是根据<a href="http://zetcode.com/tutorials/pythontutorial/keywords/" rel="nofollow noreferrer">this page</a>,由于Python的内存优化,它还可以处理两个相同的字符串。但是,以下方法不起作用:</p>
<pre><code>def uSplit(ustring):
#return user minus host
return ustring.split('!',1)[0]
user = uSplit('theuser!host')
print type(user)
print user
if user is 'theuser':
print 'ok'
else:
print 'failed'
user = 'theuser'
if user is 'theuser':
print 'ok'</code></pre>
<p>输出:</p>
^{pr2}$
<p>我猜这是因为函数返回的字符串与字符串文本的“类型”不同。有没有办法让一个函数返回字符串文字?我知道我可以用<strong>==</strong>,但我只是好奇。在</p>