> For the complete documentation index, see [llms.txt](https://gyansetu-python.gitbook.io/python-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gyansetu-python.gitbook.io/python-programming/oops/declaring-enumerations.md).

# Declaring Enumerations

Enumerations in Python are implemented by using the module named “**enum**“. Enumerations are created using **classes**. Enums have **names and values** associated with them.

**Properties of enum:**

**1.** Enums can be displayed as **string** or repr.

**2.** Enums can be checked for their types using **type()**.

**3.** “**name**” keyword is used to display the name of the enum member

**4.** Enumerations are **iterable**. They can be iterated using loops

**5.** Enumerations support **hashing**. Enums can be used in dictionaries or sets

Example:

```python
import enum
class Animal(enum.Enum):
    Dog=1
    Cat=2
    Tiger=3

print(Animal.Dog)
print(type(Animal.Dog))
print(Animal(1))
print(Animal.Dog.value)
print(Animal.Dog.name)
print(repr(Animal.Dog))
```

Animal.Dog

\<enum 'Animal'>

Animal.Dog

1

Dog

\<Animal.Dog: 1>

Example 1:

```python
# Python code to demonstrate enumerations  
  
# importing enum for enumerations 
import enum 
  
# creating enumerations using class 
class Animal(enum.Enum): 
    dog = 1
    cat = 2
    lion = 3
  
# printing enum member as string 
print ("The string representation of enum member is : ",end="") 
print (Animal.dog) 
  
# printing enum member as repr 
print ("The repr representation of enum member is : ",end="") 
print (repr(Animal.dog)) 
  
# printing the type of enum member using type() 
print ("The type of enum member is : ",end ="") 
print (type(Animal.dog)) 
  
# printing name of enum member using "name" keyword 
print ("The name of enum member is : ",end ="") 
print (Animal.dog.name) 
```

The string representation of enum member is : Animal.dog&#x20;

The repr representation of enum member is :  \<Animal.dog: 1>

The type of enum member is :  \<enum 'Animal'>

The name of enum member is : dog

Example 2:

```python
# Python code to demonstrate enumerations  
# iterations and hashing 
# importing enum for enumerations 
import enum 
  
# creating enumerations using class 
class Animal(enum.Enum): 
    dog = 1
    cat = 2
    lion = 3
  
# printing all enum members using loop 
print ("All the enum values are : ") 
for Anim in (Animal): 
    print(Anim) 
  
# Hashing enum member as dictionary 
di = {} 
di[Animal.dog] = 'bark'
di[Animal.lion] = 'roar'
  
# checking if enum values are hashed successfully 
if di=={Animal.dog : 'bark',Animal.lion : 'roar'}: 
      print ("Enum is hashed") 
else: print ("Enum is not hashed") 
```

All the enum values are :&#x20;

Animal.dog&#x20;

Animal.cat&#x20;

Animal.lion&#x20;

Enum is hashed

### **Accessing Modes :**&#x20;

Enum members can be accessed by two ways

**1. By value** :- In this method, the value of enum member is passed.

**2. By name** :- In this method, the name of enum member is passed.

Seperate value or name can also be accessed using “**name**” or “**value**” keyword.<br>

### **Comparison :**&#x20;

Enumerations supports two types of comparisons

**1. Identity** :- These are checked using keywords “**is**” and “**is not**“.

**2. Equality** :- Equality comparisons of “**==**” and “**!=**” types are also supported.

Example 3:

```python
# Python code to demonstrate enumerations  
# Access and comparison 
  
# importing enum for enumerations 
import enum 
  
# creating enumerations using class 
class Animal(enum.Enum): 
    dog = 1
    cat = 2
    lion = 3
  
# Accessing enum member using value  
print ("The enum member associated with value 2 is : ",end="") 
print (Animal(2)) 
  
# Accessing enum member using name   
print ("The enum member associated with name lion is : ",end="") 
print (Animal['lion']) 
  
# Assigning enum member  
mem = Animal.dog 
  
# Displaying value  
print ("The value associated with dog is : ",end="") 
print (mem.value) 
  
# Displaying name   
print ("The name associated with dog is : ",end="") 
print (mem.name) 
  
# Comparison using "is"  
if Animal.dog is Animal.cat: 
       print ("Dog and cat are same animals") 
else : print ("Dog and cat are different animals")  
  
# Comparison using "!=" 
if Animal.lion != Animal.cat: 
       print ("Lions and cat are different") 
else : print ("Lions and cat are same") 
```

The enum member associated with value 2 is : Animal.cat&#x20;

The enum member associated with name lion is : Animal.lion&#x20;

The value associated with dog is : 1&#x20;

The name associated with dog is : dog&#x20;

Dog and cat are different animals&#x20;

Lions and cat are different

Example 4:

```python
# Python code to demonstrate enumerations  
# Access and comparison 
  
# importing enum for enumerations 
import enum 
  
# creating enumerations using class 
class Animal(enum.Enum): 
    dog = 1
    cat = 1
    lion = 3
  
# Accessing enum member using value  
print ("The enum member associated with value 2 is : ",end="") 
print (Animal(2)) 
  
# Accessing enum member using name   
print ("The enum member associated with name lion is : ",end="") 
print (Animal['lion']) 
  
# Assigning enum member  
mem = Animal.dog 
  
# Displaying value  
print ("The value associated with dog is : ",end="") 
print (mem.value) 
  
# Displaying name   
print ("The name associated with dog is : ",end="") 
print (mem.name) 
  
# Comparison using "is"  
if Animal.dog is Animal.cat: 
       print ("Dog and cat are same animals") 
else : print ("Dog and cat are different animals")  
  
# Comparison using "!=" 
if Animal.lion != Animal.cat: 
       print ("Lions and cat are different") 
else : print ("Lions and cat are same") 
```
