call方法,对象后面加括号,触发执行 #特别不常用
class Person:
def __init__(self,name):
self.name = name
def __call__(cls,*args,**kwargs):
print(cls,*args,**kwargs)
p = Person("jack")
p() #触发执行call方法
Person()#触发执行call方法
type创建类:
类本质是由type产生的。type(Person)输出为<class "type">
通过type动态产生一个类:
def __init__(self,name,age) #动态创建类,类中的函数写在外面,之后在通过type的参数引进去
self.name = name
self.age = age
dog_class = type("Dog", (object,),{"sex" : "male","__init__":__init__}) #引入init方法
p = dog_class("jack", 12)
isinstance(obj,cls):检查obj是否是类cls的对象 例:isinstance(p,dog_class)
issubclass(sub,super):检查sub类是否是super类的派生类 issubclass(Son,Father)