学习python第十三天 call方法、type动态创建类

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)

posted @ 2021-04-10 17:31  筱宇衡  阅读(92)  评论(0编辑  收藏  举报