Mercurial > cpython-lru_cache-weakref
diff Lib/string.py @ 23219:b08b51dce264 2.2
Backport the following changes:
Misc/NEWS 1.387->1.388
Lib/test/string_tests.py 1.10->1.11, 1.12->1.14,
Lib/test/test_unicode.py 1.50->1.51, 1.53->1.54, 1.55->1.56
Lib/test/test_string.py 1.15->1.16
Lib/string.py 1.61->1.63
Lib/test/test_userstring.py 1.5->1.6, 1.11, 1.12
Objects/stringobject.c 2.156->2.159
Objects/unicodeobject.c 2.137->2.139
Doc/lib/libstdtypes.tec 1.87->1.88
Add a method zfill to str, unicode and UserString
and change Lib/string.py accordingly
(see SF patch http://www.python.org/sf/536241)
This also adds Guido's fix to test_userstring.py
and the subinstance checks in test_string.py
and test_unicode.py.
| author | Walter Dörwald <walter@livinglogic.de> |
|---|---|
| date | Mon, 22 Apr 2002 11:57:06 +0000 |
| parents | fd424f519a8e |
| children | 2832628ee8cc |
line wrap: on
line diff
--- a/Lib/string.py Mon Apr 22 11:21:59 2002 +0000 +++ b/Lib/string.py Mon Apr 22 11:57:06 2002 +0000 @@ -190,7 +190,10 @@ _float = float _int = int _long = long -_StringType = type('') +try: + _StringTypes = (str, unicode) +except NameError: + _StringTypes = (str,) # Convert string to float def atof(s): @@ -276,14 +279,9 @@ of the specified width. The string x is never truncated. """ - if type(x) == type(''): s = x - else: s = `x` - n = len(s) - if n >= width: return s - sign = '' - if s[0] in ('-', '+'): - sign, s = s[0], s[1:] - return sign + '0'*(width-n) + s + if not isinstance(x, _StringTypes): + x = repr(x) + return x.zfill(width) # Expand tabs in a string. # Doesn't take non-printing chars into account, but does understand \n.
