<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 03/06/2014 11:46 PM, Cr&iacute;stian Viana
      wrote:<br>
    </div>
    <blockquote cite="mid:5318985B.7000600@linux.vnet.ibm.com"
      type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Am 06-03-2014 12:12, schrieb Sheldon:<br>
      <blockquote cite="mid:5318907A.1070406@linux.vnet.ibm.com"
        type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        AFAK&#65292; seems two types has no string representation, one is
        unicode and another is object derived from nothing.<br>
      </blockquote>
      The statement <tt>if not isinstance(value, unicode)</tt>, which
      is in the sample code above, makes sure that we will not try to
      convert a unicode object to string (only those who have a
      different type).<br>
    </blockquote>
    I have forgot to tell one result I have tried:<br>
    In [24]: u"f&#466;&#466; = %s" % "f&#466;&#466;"<br>
---------------------------------------------------------------------------<br>
    UnicodeDecodeError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Traceback (most recent
    call last)<br>
    <br>
    only this case need the statement <tt>if not isinstance(value,
      unicode)</tt>,<br>
    In [23]: u"f&#466;&#466; = %s" % u"f&#466;&#466;"<br>
    Out[23]: u'f\u01d2\u01d2 = f\u01d2\u01d2'<br>
    <br>
    not find other case. <br>
    <br>
    if you find, you can tell us. <br>
    Thanks. <br>
    <br>
    <blockquote cite="mid:5318985B.7000600@linux.vnet.ibm.com"
      type="cite"> <br>
      And an object derived from nothing also has a string
      representation. Take a look at this example:<br>
      <br>
      <tt>&gt;&gt;&gt; class X():</tt><tt><br>
      </tt><tt>...&nbsp;&nbsp;&nbsp;&nbsp; def x(self):</tt><tt><br>
      </tt><tt>...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass</tt><tt><br>
      </tt><tt>... </tt><tt><br>
      </tt><tt>&gt;&gt;&gt; a = X()</tt><tt><br>
      </tt><tt>&gt;&gt;&gt; print str(a)</tt><tt><br>
      </tt><tt>&lt;__main__.X instance at 0x7f8fe13d4b00&gt;</tt><tt><br>
      </tt><tt>&gt;&gt;&gt; print "this is a string: %s." % a</tt><tt><br>
      </tt><tt>this is a string: &lt;__main__.X instance at
        0x7f8fe13d4b00&gt;.</tt><br>
      <br>
      <blockquote cite="mid:5318907A.1070406@linux.vnet.ibm.com"
        type="cite">But I'm not worry about it.<br>
        IMO, no one will not pass this instance of object to&nbsp;
        KimchiException as args.<br>
      </blockquote>
      IMO, we should never trust that the users/developers will pass the
      correct parameters to our code. Eventually, someone will forget
      that, and then we will have one more bug ;)<br>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Thanks and best regards!

Sheldon Feng(&#20911;&#23569;&#21512;)<a class="moz-txt-link-rfc2396E" href="mailto:shaohef@linux.vnet.ibm.com">&lt;shaohef@linux.vnet.ibm.com&gt;</a>
IBM Linux Technology Center</pre>
  </body>
</html>