[Python-checkins] peps: PEP 461: updates to %s and Open Questions

ethan.furman python-checkins at python.org
Wed Jan 15 03:22:53 CET 2014


http://hg.python.org/peps/rev/ded763368fae
changeset: 5350:ded763368fae
user: Ethan Furman <ethan at stoneleaf.us>
date: Tue Jan 14 18:23:03 2014 -0800
summary:
 PEP 461: updates to %s and Open Questions
files:
 pep-0461.txt | 26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/pep-0461.txt b/pep-0461.txt
--- a/pep-0461.txt
+++ b/pep-0461.txt
@@ -44,13 +44,10 @@
 >>> b'%c' % b'a'
 b'a'
 
-%s, because it is the most general, has the most convoluted resolution:
+%s is a restricted in what it will accept::
 
- - input type is bytes?
- pass it straight through
-
- - input type is numeric?
- use its __xxx__ [1] [2] method and ascii-encode it (strictly)
+ - input type supports Py_buffer?
+ use it to collect the necessary bytes
 
 - input type is something else?
 use its __bytes__ method; if there isn't one, raise an exception [3]
@@ -61,7 +58,9 @@
 b'abc'
 
 >>> b'%s' % 3.14
- b'3.14'
+ Traceback (most recent call last):
+ ...
+ TypeError: 3.14 has no __bytes__ method
 
 >>> b'%s' % 'hello world!'
 Traceback (most recent call last):
@@ -77,6 +76,11 @@
 
 'a string'.encode('latin-1')
 
+Unsupported % format codes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%r (which calls __repr__) is not supported
+
 
 format
 ------
@@ -88,14 +92,16 @@
 Open Questions
 ==============
 
-For %s there has been some discussion of trying to use the buffer protocol
-(Py_buffer) before trying __bytes__. This question should be answered before
-the PEP is implemented.
+Do we need no support all the numeric format codes? The floating point
+exponential formats seem less appropriate, for example.
 
 
 Proposed variations
 ===================
 
+It was suggested to let %s accept numbers, but since numbers have their own
+format codes this idea was discarded.
+
 It has been suggested to use %b for bytes instead of %s.
 
 - Rejected as %b does not exist in Python 2.x %-interpolation, which is
-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /