diff options
author | Fred Drake <fdrake@acm.org> | 2000-07-03 07:23:13 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2000-07-03 07:23:13 (GMT) |
commit | 046d27215fd0037f40cc90b85a66f76ff424347e (patch) | |
tree | e32451afe0d0323f17fee2ace3a8c700403e2108 /Lib | |
parent | fcc95a4d04db9f9787c2602132934b88c83f4e51 (diff) | |
download | cpython-046d27215fd0037f40cc90b85a66f76ff424347e.zip cpython-046d27215fd0037f40cc90b85a66f76ff424347e.tar.gz cpython-046d27215fd0037f40cc90b85a66f76ff424347e.tar.bz2 |
Martin von Löwis <martin@loewis.home.cs.tu-berlin.de>:
This patch delegates more string functions to string object methods,
uses the varargs delegation syntax, and stops using stringold.
Closes SourceForge patch #100712.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/string.py | 49 |
1 files changed, 9 insertions, 40 deletions
diff --git a/Lib/string.py b/Lib/string.py index 5f90723..21781e7 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -125,9 +125,6 @@ def join(words, sep = ' '): return sep.join(words) joinfields = join -# for a little bit of speed -_apply = apply - # Find substring, raise exception if not found def index(s, *args): """index(s, sub [,start [,end]]) -> int @@ -135,7 +132,7 @@ def index(s, *args): Like find but raises ValueError when the substring is not found. """ - return _apply(s.index, args) + return s.index(*args) # Find last substring, raise exception if not found def rindex(s, *args): @@ -144,7 +141,7 @@ def rindex(s, *args): Like rfind but raises ValueError when the substring is not found. """ - return _apply(s.rindex, args) + return s.rindex(*args) # Count non-overlapping occurrences of substring def count(s, *args): @@ -155,7 +152,7 @@ def count(s, *args): interpreted as in slice notation. """ - return _apply(s.count, args) + return s.count(*args) # Find substring, return -1 if not found def find(s, *args): @@ -168,7 +165,7 @@ def find(s, *args): Return -1 on failure. """ - return _apply(s.find, args) + return s.find(*args) # Find last substring, return -1 if not found def rfind(s, *args): @@ -181,7 +178,7 @@ def rfind(s, *args): Return -1 on failure. """ - return _apply(s.rfind, args) + return s.rfind(*args) # for a bit of speed _float = float @@ -239,9 +236,7 @@ def ljust(s, width): never truncated. """ - n = width - len(s) - if n <= 0: return s - return s + ' '*n + return s.ljust(width) # Right-justify a string def rjust(s, width): @@ -252,9 +247,7 @@ def rjust(s, width): never truncated. """ - n = width - len(s) - if n <= 0: return s - return ' '*n + s + return s.rjust(width) # Center a string def center(s, width): @@ -265,13 +258,7 @@ def center(s, width): truncated. """ - n = width - len(s) - if n <= 0: return s - half = n/2 - if n%2 and width%2: - # This ensures that center(center(s, i), j) = center(s, j) - half = half+1 - return ' '*half + s + ' '*(n-half) + return s.center(width) # Zero-fill a number, e.g., (12, 3) --> '012' and (-3, 3) --> '-03' # Decadent feature: the argument may be a string or a number @@ -302,15 +289,7 @@ def expandtabs(s, tabsize=8): column, and the tabsize (default 8). """ - res = line = '' - for c in s: - if c == '\t': - c = ' '*(tabsize - len(line) % tabsize) - line = line + c - if c == '\n': - res = res + line - line = '' - return res + line + return s.expandtabs(tabsize) # Character translation through look-up table. def translate(s, table, deletions=""): @@ -380,16 +359,6 @@ def replace(s, old, new, maxsplit=-1): return s.replace(old, new, maxsplit) -# XXX: transitional -# -# If string objects do not have methods, then we need to use the old string.py -# library, which uses strop for many more things than just the few outlined -# below. -try: - ''.upper -except AttributeError: - from stringold import * - # Try importing optional built-in module "strop" -- if it exists, # it redefines some string operations that are 100-1000 times faster. # It also defines values for whitespace, lowercase and uppercase |