File: //usr/lib/python2.4/Demo/newmetaclasses/Enum.pyo
mò
=5Dc @ s£ d Z d e f d YZ d e f d YZ d e f d YZ d f d YZ d f d
YZ d Z d Z e
d
j o e e n d S( s Enumeration metaclass.t
EnumMetaclassc B s) t Z d Z d Z d Z d Z RS( sg Metaclass for enumeration.
To define your own enumeration, do something like
class Color(Enum):
red = 1
green = 2
blue = 3
Now, Color.red, Color.green and Color.blue behave totally
different: they are enumerated values, not integers.
Enumerations cannot be instantiated; however they can be
subclassed.
c C s t t | i | | | g | _ xn | i D]` } | i
d o
| i d p: t | | | | } t | | | | i i | q2 q2 Wd S( Nt __( t superR t clst __init__t namet basest dictt _memberst keyst attrt
startswitht endswitht EnumInstancet enumvalt setattrt append( R R R R R R
( ( t. /usr/lib/python2.4/Demo/newmetaclasses/Enum.pyR s
c C s% | d j o | i Sn t | d S( Nt __members__( R R R t AttributeError( R R ( ( R t __getattr__ s
c C sÙ d } } g } | i D]1 } t | t o | t j o | | i q q ~ } | o d d i | } n g } | i D] } | d | t | | f q~ ~ } | o d d i | } n d | i | | f S( Nt s (%s)s , s %s: %ds : {%s}s %s%s%s( t s1t s2t _[1]R t __bases__t baset
isinstanceR t Enumt __name__t enumbasest joinR t valt getattrt
enumvalues( R R"