How to declare a variable in Python without assigning a value to it?

Python variables are names that refer to objects in memory. Normally, you assign a value when creating a variable, but sometimes you need to declare a variable without an initial value. Python provides several approaches to accomplish this.

For example, a = 100 creates a variable a pointing to an integer object with value 100. But what if you want to declare a without assigning a specific value?

Using the None Keyword

The most common approach is using None, Python's built-in null value. None is a special object of type NoneType that represents the absence of a value.

Example

Here we declare two variables − one with an integer value and another with None ?

# Define a variable with an integer value and another with None
value1 = 10 
print(type(value1))
print(value1)

value2 = None 
print(type(value2))
print(value2)
<class 'int'>
10
<class 'NoneType'>
None

Using Empty Collections

You can declare variables as empty strings, lists, dictionaries, or other collections. These variables exist but contain no elements.

Example

Here we create empty collections of different types ?

# Define empty collections
empty_list = [] 
empty_string = "" 
empty_dict = {}
empty_tuple = ()

print("List:", empty_list, "Type:", type(empty_list))
print("String:", repr(empty_string), "Type:", type(empty_string))
print("Dict:", empty_dict, "Type:", type(empty_dict))
print("Tuple:", empty_tuple, "Type:", type(empty_tuple))
List: [] Type: <class 'list'>
String: '' Type: <class 'str'>
Dict: {} Type: <class 'dict'>
Tuple: () Type: <class 'tuple'>

Using Type Hints (Python 3.6+)

Type annotations allow you to specify a variable's expected type without assigning a value. However, accessing an uninitialized annotated variable raises a NameError.

Example

Here we annotate a variable but don't assign it a value ?

# Variable with type annotation but no value
username: str
age: int
scores: list[int]

# This would raise NameError if you tried to access them
# print(username)  # NameError: name 'username' is not defined

# You can assign values later
username = "Alice"
age = 25
scores = [95, 87, 92]

print(f"Username: {username}")
print(f"Age: {age}")
print(f"Scores: {scores}")
Username: Alice
Age: 25
Scores: [95, 87, 92]

Comparison of Methods

Method Variable State Memory Usage Best For
var = None Initialized Minimal Placeholder values
var = [] Initialized (empty) Small Collections to be filled
var: type Declared only None Type documentation

Conclusion

Use None for general placeholder variables, empty collections when you plan to add elements later, and type hints for documentation. None is the most common and practical approach for uninitialized variables.

Updated on: 2026-03-24T19:06:53+05:30

12K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements