在 Python 中检查一个变量是否是一个类
Check if a variable is a Class or not in Python
使用该inspect.isclass()
方法检查变量是否为类,例如
if inspect.isclass(variable):
.
如果提供的对象是类,则该inspect.isclass()
方法返回,否则返回。True
False
主程序
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()
方法更隐含。