Open In App

How to detect whether a Python variable is a function?

Improve
Improve
Like Article
Like
Save
Share
Report

There are times when we would like to check whether a Python variable is a function or not. This may not seem that much useful when the code is of thousand lines and you are not the writer of it one may easily stuck with the question of whether a variable is a function or not. We will be using the below methods to check the same.

  • By calling the built-in function callable()
  • By importing isfunction() from the inspect module
  • By using the type() function
  • By calling the built-in function hasattr() function
  • By using the isinstance() function

Detect whether a Python variable is a function or not by using a callable() function

It is a function that returns the boolean value True if the function is callable otherwise it returns false. And Syntax of the callable function.

Python3




def subtract(a, b):
    return a-b
 
print(callable(subtract))
value = 15
print(callable(value))


Output:

True
False

Detect whether a Python variable is a function or not by using the inspect module 

Inspect is a module from which we will have to use the isfunction which returns a boolean value True if it is a function else return false.  And for using this, First, you have to import isfunction from inspect, and after that use, isfunction to get the boolean value.

Python3




from inspect import isfunction
 
def subtract(a, b):
    return a-b
 
print(isfunction(subtract))
val = 10
print(isfunction(val))


Output:

True
False

Detect whether a Python variable is a function or not by using the type() function

It is a function that tells us the type of an object by which we will check if the type of object is a function then it is callable otherwise it is not callable.

Python3




def subtract(a, b):
    return a-b
 
print(type(subtract))
value = 'GFG'
print(type(value))


Output:

<class 'function'>
<class 'str'>

Detect whether a Python variable is a function or not by using the hasattr() function

hasattr() is a function that tells us the type of an object by which we will check if the type of object is a function or not. It returns a boolean value as well just like callable().

Python3




def subtract(a, b):
    return a-b
 
 
print(hasattr(subtract, '__call__'))
value = 'GFG'
print(hasattr(value, '__call__'))


Output:

True
False

 

isinstance() is a function that tells us the type of object by which we will check if the type of object is a function or not. It returns a boolean value as well just like hasattr().

Python3




import types
def subtract(a, b):
    return a-b
 
print(isinstance(subtract, types.FunctionType))
value = 'GFG'
print(isinstance(value, types.FunctionType))


Output:

True
False

Detect whether a Python variable is a function or not by using inspect module:

One alternative approach to detect whether a Python variable is a function is to use the inspect module. This can be done by importing the isfunction method from inspect and then calling isfunction on the variable in question. For example:

Python3




import inspect
 
def test_function():
    pass
 
print(inspect.isfunction(test_function))  # Output: True
 
value = 10
print(inspect.isfunction(value))  # Output: False


Output:

True
False


Last Updated : 28 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads