Determine if a class is a subclass of a second class in Python

To determine if a class is a subclass of a second class, Python provides both the built-in issubclass() function and NumPy's issubclass_() method. NumPy's version is safer as it returns False instead of raising a TypeError when arguments are not classes.

Syntax

numpy.issubclass_(arg1, arg2)

Parameters

  • arg1 − The input class to test
  • arg2 − The parent class or tuple of classes to check against

Return Value

Returns True if arg1 is a subclass of arg2, otherwise False. If arg2 is a tuple, returns True if arg1 is a subclass of any element in the tuple.

Example

import numpy as np

print("Using the issubclass_() method in NumPy\n")

# Checking NumPy data types
print("np.float16 subclass of np.float32:", np.issubclass_(np.float16, np.float32))
print("np.int32 subclass of np.signedinteger:", np.issubclass_(np.int32, np.signedinteger))
print("np.int64 subclass of int:", np.issubclass_(np.int64, int))
print("np.float64 subclass of float:", np.issubclass_(np.float64, float))
print("np.int32 subclass of np.integer:", np.issubclass_(np.int32, np.integer))

# Testing with string representations
print("'i4' subclass of np.signedinteger:", np.issubclass_('i4', np.signedinteger))
print("'S8' subclass of str:", np.issubclass_('S8', str))

# Testing incompatible types (safely returns False)
print("np.int16 subclass of float:", np.issubclass_(np.int16, float))
print("np.array subclass of int:", np.issubclass_(np.array([45, 89]), int))
Using the issubclass_() method in NumPy

np.float16 subclass of np.float32: False
np.int32 subclass of np.signedinteger: True
np.int64 subclass of int: False
np.float64 subclass of float: True
np.int32 subclass of np.integer: True
'i4' subclass of np.signedinteger: False
'S8' subclass of str: False
np.int16 subclass of float: False
np.array subclass of int: False

Comparison with Built-in issubclass()

Feature Built-in issubclass() numpy.issubclass_()
Invalid arguments Raises TypeError Returns False
NumPy types Limited support Full support
Safety May crash code Always returns boolean

Key Points

  • numpy.issubclass_() is safer than the built-in issubclass()
  • It handles NumPy data types and string representations
  • Returns False for invalid inputs instead of raising exceptions
  • Useful for checking NumPy dtype hierarchies

Conclusion

Use numpy.issubclass_() for safe subclass checking, especially with NumPy data types. It provides the same functionality as Python's built-in issubclass() but with better error handling and NumPy type support.

Updated on: 2026-03-26T19:17:52+05:30

266 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements