在 Python 中检查一个变量是否是一个类

在 Python 中检查一个变量是否是一个类

Check if a variable is a Class or not in Python

使用该inspect.isclass()方法检查变量是否为类,例如
if inspect.isclass(variable):.
如果提供的对象是类,则
inspect.isclass()方法返回,否则返回。TrueFalse

主程序
from inspect import isclass class Employee(): pass emp1 = Employee() print(isclass(Employee)) # 👉️ True print(isclass(emp1)) # 👉️ False if isclass(Employee): # 👇️ this runs print('The variable is a class') else: print('The variable is NOT a class')

如果提供的
对象是一个类,则
inspect.isclass
方法返回。
True

该方法返回True内置和用户定义的类。

主程序
from inspect import isclass class Employee(): pass emp1 = Employee() print(isclass(int)) # 👉️ True print(isclass(float)) # 👉️ True print(isclass(Employee)) # 👉️ True print(isclass(emp1)) # 👉️ False

如果您需要检查变量是否是特定类的实例,请使用该
isinstance()函数。

主程序
class Employee(): pass emp1 = Employee() print(isinstance(emp1, Employee)) # 👉️ True print(isinstance(int, Employee)) # 👉️ False

如果传入的对象是传入类的实例或子类,则isinstance
函数返回。
True

isinstance()如果您需要检查一个变量是否是多个类之一的实例,也可以向该函数传递一个元组

主程序
class Employee(): pass emp1 = Employee() # 👇️ True print(isinstance( emp1, (int, float, list, Employee) )) # 👇️ False print(isinstance( emp1, (int, float, list) ))
您还可以使用该isinstance()函数来检查变量是否为类。
主程序
class Employee(): pass emp1 = Employee() print(type(Employee)) # 👉️ <class 'type'> print(isinstance(Employee, type)) # 👉️ True print(isinstance(emp1, type)) # 👉️ False

type类是Python 中类的实例。

所以我们可以通过检查它是否是类的实例来检查变量是否存储了一个type类。

这可以为您节省一条 import 语句,但比使用该inspect.isclass()方法更隐含。