First-Class Objects in Python

Maxat AkbanovMaxat Akbanov
2 min read

In Python, first-class objects (also known as first-class citizens) refer to entities that can be dynamically created, destroyed, passed to a function, returned as a value from a function, and assigned to a variable. This concept is crucial in understanding Python's flexible programming model, especially its function-handling capabilities. Functions, integers, strings, classes, dictionaries and virtually all other types of Python objects are treated as first-class objects.

Here are some key properties and examples to illustrate how first-class objects operate in Python:

1. Assigning to Variables

Any Python object can be assigned to a variable. This is true for functions, integers, strings, etc.

def my_function():
    print("Hello, World!")

# Assigning function to a variable
var = my_function
var()  # This will print "Hello, World!"

2. Passing as Arguments to Functions

You can pass objects as arguments to functions. This is particularly useful for higher-order functions that take other functions as parameters.

def greet(name):
    return f"Hello, {name}!"

def process_function(func, arg):
    return func(arg)

# Passing the 'greet' function as an argument to 'process_function'
result = process_function(greet, "Alice")
print(result)  # This will print "Hello, Alice!"

3. Returning from Functions

Functions can return other objects, including functions.

def parent_function():
    def child_function():
        print("I'm the child!")
    return child_function

# Getting a function returned from another function
child = parent_function()
child()  # This will print "I'm the child!"

4. Storing in Data Structures

Objects can be stored in data structures, such as lists, dictionaries, sets, etc.

def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

# Storing functions in a list
operations = [add, subtract]
for operation in operations:
    print(operation(10, 5))  # This will print the results of add(10, 5) and subtract(10, 5)

These examples demonstrate the flexibility and power of first-class objects in Python, enabling dynamic and expressive programming patterns.

References:

  1. RealPython: First-Class Objects in Python

  2. Python’s Functions Are First-Class

  3. Wikipedia: Higher-Order Function

  4. Functional Programming in Python: When and How to Use It

  5. O'Reilly: Functions as First-Class Objects

0
Subscribe to my newsletter

Read articles from Maxat Akbanov directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Maxat Akbanov
Maxat Akbanov

Hey, I'm a postgraduate in Cyber Security with practical experience in Software Engineering and DevOps Operations. The top player on TryHackMe platform, multilingual speaker (Kazakh, Russian, English, Spanish, and Turkish), curios person, bookworm, geek, sports lover, and just a good guy to speak with!