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).