summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2008-05-23 17:21:44 +0000
committerRaymond Hettinger <python@rcn.com>2008-05-23 17:21:44 +0000
commitf6901e909f3badbe1abcd9e38e8de809beae0800 (patch)
tree6a45b6317afbeef3ff84ba9fb8a5f0f1357ccded
parent27e4a179f277b568f04d482765ab773068ae6ab6 (diff)
downloadcpython-git-f6901e909f3badbe1abcd9e38e8de809beae0800.tar.gz
Issue 2909: show how to name unpacked fields.
-rw-r--r--Doc/library/struct.rst10
1 files changed, 10 insertions, 0 deletions
diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst
index e2443aa395..63bf9b178e 100644
--- a/Doc/library/struct.rst
+++ b/Doc/library/struct.rst
@@ -233,6 +233,16 @@ end, assuming longs are aligned on 4-byte boundaries. This only works when
native size and alignment are in effect; standard size and alignment does not
enforce any alignment.
+Unpacked fields can be named by assigning them to variables or by wrapping
+the result in a named tuple::
+
+ >>> record = 'raymond \x32\x12\x08\x01\x08'
+ >>> name, serialnum, school, gradelevel = unpack('<10sHHb', record)
+
+ >>> from collections import namedtuple
+ >>> Student = namedtuple('Student', 'name serialnum school gradelevel')
+ >>> Student._make(unpack('<10sHHb', s))
+ Student(name='raymond ', serialnum=4658, school=264, gradelevel=8)
.. seealso::