Issue1583863
Created on 2006-10-24 15:57 by laughingboy0, last changed 2022-04-11 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| format_unicode.patch | vstinner, 2009-03-30 11:45 | |||
| Messages (5) | |||
|---|---|---|---|
| msg61028 - (view) | Author: Mike K (laughingboy0) | Date: 2006-10-24 15:57 | |
class S(str): def __str__(self): return '__str__ overridden' class U(unicode): def __str__(self): return '__str__ overridden' def __unicode__(self): return u'__unicode__ overridden' s = S() u = U() print 's:', s print "str(s):", str(s) print 's substitued is "%s"\n' % s print 'u:', u print "str(u):", str(u) print 'u substitued is "%s"' % u ----------------------------------------------------- s: __str__ overridden str(s): __str__ overridden s substitued is "__str__ overridden" u: str(u): __str__ overridden u substitued is "" Results are identical for 2.4.2 and 2.5c2 (running under windows). |
|||
| msg84519 - (view) | Author: Daniel Diniz (ajaksu2) * ![]() |
Date: 2009-03-30 06:42 | |
Confirmed in trunk. |
|||
| msg84534 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2009-03-30 10:51 | |
Case "S" (type str): "%s" uses _PyObject_Str() which checks the object type with PyString_CheckExact(). Case "U" (type unicode) "%s" uses PyUnicode_Check() and then calls PyUnicode_Format(). PyUnicode_Format() uses PyUnicode_Check() to check the object object. It should uses PyUnicode_CheckExact() instead. xxx_CheckExact() is different than xxx_Check(): exact is only true for the base type, whereas the the second is also true for subclass. |
|||
| msg84535 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2009-03-30 11:45 | |
Patch: Use PyUnicode_CheckExact() instead of PyUnicode_CheckExact() in PyUnicode_Format() to use obj.__unicode__ slot. |
|||
| msg101501 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2010-03-22 12:56 | |
Commited: r79278+r79280 (trunk), r79281 (py3k), r79282 (3.1), r79283 (2.6). |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:56:20 | admin | set | github: 44163 |
| 2010-04-27 14:45:23 | eric.smith | link | issue8128 superseder |
| 2010-03-22 12:57:04 | vstinner | set | status: open -> closed resolution: fixed |
| 2010-03-22 12:56:53 | vstinner | set | messages: + msg101501 |
| 2009-03-30 11:45:53 | vstinner | set | files:
+ format_unicode.patch keywords: + patch messages: + msg84535 |
| 2009-03-30 10:51:54 | vstinner | set | messages: + msg84534 |
| 2009-03-30 06:42:29 | ajaksu2 | set | type: behavior components: + Unicode versions: + Python 2.6, - Python 2.5 nosy: + ajaksu2, vstinner messages:
+ msg84519 |
| 2006-10-24 15:57:03 | laughingboy0 | create | |

