# 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") 
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gyansetu-python.gitbook.io/python-programming/oops/declaring-enumerations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
