Skip to main content

How to Check the Data Type of a Variable in Python

How to Check the Data Type of a Variable in Python | Rustcode

How to Check the Data Type of a Variable in Python

Knowing the data type of a variable is crucial for debugging, validation, and dynamic processing in Python. Python makes type checking very easy with functions like type() and isinstance(). Below are the main methods, with examples and clear guidance on best practice.


Why Check the Data Type?

  • Debugging: Discover why an operation fails (wrong type).
  • Validation: Ensure a variable is the correct type before further processing.
  • Generic Programs: Write flexible code that works differently based on type.

01. Using type() to Get the Exact Type

type() returns the type object of any value or variable. Use it to see or compare exact types.

x = 42
print(type(x))  # <class 'int'>

y = "Rustcode"
if type(y) is str:
    print("y is a string!")

Output:

<class 'int'>
y is a string!
Explanation:
  • type(variable) shows the data type (like int, str, list).
  • Compare types directly with is for exact matches (type(x) is int).
  • Does not match subclasses—only the precise type.

02. Using isinstance() for Type Checks

isinstance() checks if a variable is an instance of a type or a tuple of types. It works with subclasses and is preferred for everyday checks.

z = [1, 2, 3]
if isinstance(z, list):
    print("It's a list!")

n = 7.5
if isinstance(n, (float, int)):
    print("n is a number!")

Output:

It's a list!
n is a number!
Explanation:
  • isinstance(variable, type) returns True if variable is of the type (or its subclass).
  • Can check against multiple types using a tuple: isinstance(n, (float, int)).

03. type() vs isinstance(): Which to Use?

  • Use isinstance() for almost all type checking needs—it's robust and handles inheritance.
  • Use type() only when you need the exact type and want to explicitly exclude subclasses.
class Animal: pass
class Dog(Animal): pass

pet = Dog()
print(isinstance(pet, Animal))  # True (Dog is a subclass of Animal)
print(type(pet) is Animal)      # False (Dog is not exactly Animal)

Output:

True
False

04. Comparison Table: Type-Checking Methods

Method Exact Type? Supports Subclass? Multiple Types? Best For
type() Yes No No Strict checks / debugging
isinstance() No Yes Yes Safe type checks

Conclusion

To check the data type of a variable in Python, use isinstance() for nearly all practical code—it is safe, clear, and flexible. type() is useful for debugging or when you need to enforce an exact class type. Understanding these tools will help you write safer, more robust, and maintainable Python code.

Comments