
This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.
Created on2006-10-24 15:57 bylaughingboy0, last changed2022-04-11 14:56 byadmin. This issue is nowclosed.
| 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:', sprint "str(s):", str(s)print 's substitued is "%s"\n' % sprint 'u:', uprint "str(u):", str(u)print 'u substitued is "%s"' % u-----------------------------------------------------s: __str__ overriddenstr(s): __str__ overriddens substitued is "__str__ overridden"u:str(u): __str__ overriddenu substitued is ""Results are identical for 2.4.2 and 2.5c2 (runningunder 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 stage: test needed |
| 2006-10-24 15:57:03 | laughingboy0 | create | |