Kaydet (Commit) 72c82a4d authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Merged revisions 62007 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r62007 | georg.brandl | 2008-03-28 13:58:26 +0100 (Fr, 28 Mär 2008) | 2 lines

  #2502: add example how to do enum types with named tuples.
........
üst 6ff4b3ca
...@@ -547,6 +547,16 @@ by the :mod:`csv` or :mod:`sqlite3` modules:: ...@@ -547,6 +547,16 @@ by the :mod:`csv` or :mod:`sqlite3` modules::
for emp in map(EmployeeRecord._make, cursor.fetchall()): for emp in map(EmployeeRecord._make, cursor.fetchall()):
print(emp.name, emp.title) print(emp.name, emp.title)
Named tuples can also be used to generate enumerated constants:
.. testcode::
def enum(*names):
return namedtuple('Enum', ' '.join(names))(*range(len(names)))
Status = enum('open', 'pending', 'closed')
assert (0, 1, 2) == (Status.open, Status.pending, Status.closed)
In addition to the methods inherited from tuples, named tuples support In addition to the methods inherited from tuples, named tuples support
three additional methods and one attribute. To prevent conflicts with three additional methods and one attribute. To prevent conflicts with
field names, the method and attribute names start with an underscore. field names, the method and attribute names start with an underscore.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment