今天的问题是一名资深Python开发问的我的:
怎么判断一个值的类型是类还是实例?
判断实例比较简单,用isinstance方法即可判断:
val = "麦叔编程"
print(isinstance(val,str)) # True
print(isinstance(val,int)) # False
class Sample:
def __init__(self) -> None:
pass
s = Sample()
print(isinstance(s,Sample)) # True
print(isinstance(s,int)) # False
那么如何判断一个值是否是类呢?
在Python中,类本身也是对象,而这些类的类被称为元类(metaclass)。
元类是类的类,控制着类的创建过程。默认情况下,大多数类的元类是type,它实际上是所有类的元类。
当你创建一个类时,你实际上是使用type作为元类创建了一个新的类。元类定义了如何创建、配置和定制类的行为。
所以,在Python中可以把类看作是元类的实例。
class Sample:
pass
print(type(Sample)) # <class 'type'>
有了以上的结论,我们可以这样写代码来判断值是否是类:
class Sample:
pass
print(isinstance(Sample,type)) # True
原文链接:https://www.zsiss.com/10092.html,转载请注明出处。

评论0