Assign Function to a Variable in Python (original) (raw)

Last Updated : 26 Feb, 2025

In Python, functions are first-class objects, meaning they can be assigned to variables, passed as arguments and returned from other functions. Assigning a function to a variable enables function calls using the variable name, enhancing reusability.

**Example:

Python `

defining a function

def a(): print("GFG")

assigning function to a variable

var=a

calling the variable

var()

`

**Explanation: a() prints “GFG”. It is assigned to **var, which now holds a reference to **a(). Calling **var() executes **a().

**Implementation:

To assign a function to a variable, use the function name without parentheses (). If parentheses are used, the function executes immediately and assigns its return value to the variable instead of the function itself.

**Syntax:

# Defining a function

def fun():

# Function body

pass

# Assigning function to a variable

var = fun

# Calling the function using the variable

var()

**Example 1: Function with Local and Global Variables

Python `

x = 123 # global variable

def display(): x = 98 # local variable print(x)
print(globals()['x']) # accesses global x

print(x)

a = display # assign function to a variable a() # call function a() # call function

`

**Explanation: Inside **display(), local **x = 98 is printed first, then global **x = 123 using **globals()[‘x’]. The function is assigned to **a, allowing **display() to run twice via **a().

**Example 2: Assigning a Function with Parameters

Python `

defining a function

def fun(num): if num % 2 == 0: print("Even number") else: print("Odd number")

assigning function to a variable

a = fun

calling function using the variable

a(67) a(10) a(7)

`

Output

Odd number Even number Odd number

**Explanation: fun(num) checks if num is even or odd and prints the result. It is assigned to **a, allowing it to be called using **a(num), which executes fun(num).

**Example 3: Assigning a Function that Returns a Value

Python `

defining a function

def fun(num): return num * 40

assigning function to a variable

a = fun

calling function using the variable

print(a(6)) print(a(10)) print(a(100))

`

**Explanation: function fun(num) returns num * 40. It is assigned to **a, allowing a(num) to execute **fun(num).