#2502: add example how to do enum types with named tuples.
This commit is contained in:
parent
489343e948
commit
d289ea6df9
|
@ -567,6 +567,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.
|
||||||
|
|
Loading…
Reference in New Issue