python你传的参数是类还是实例啊?

今天的问题是一名资深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

评论0

请先
响应式网络软件网站模板29833
响应式网络软件网站模板29833
8分钟前 有人购买 去瞅瞅看

社交账号快速登录