type在python中的用法,python语句type

  type在python中的用法,python语句type

  本文主要介绍了python中类型、元类、类和对象的用法,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。

  

目录
类型,元类,类,对象,简单描述类的生成,元类,元类,学习和总结类型的作用是什么?

  

type,元类,类,对象

  

简单描述

  1.type是python内置的元类,新创建的元类需要继承type。

  2.元类用于创建类,类用于创建对象

  

类的生成方式

  传统上,类是通过声明关键字定义的。

  #1.创建人员类别

  #2.继承对象

  #3.让属性吃

  类人(对象):

  def吃(self,food=rice):

  打印(“吃% s“% food”)

  p=人()

  p.eat(food=fruits )

  按类型生成

  注意:这种方法很少使用。通常,元类由类型生成,然后元类生成类,对象实例从该类派生。

  def吃(self,food=rice):

  打印(“吃% s“% food”)

  People=type(People ,(object,),{eat:eat})

  #People=type(People ,(object,),dict(eat=eat))

  p=人()

  p .吃()

  

元类

  一般来说,元类是以元类为后缀命名的,元类是从type派生出来的,所以需要继承type。元类的操作在新方法中完成,该方法在init方法之前被调用。

  示例一

  #模式1,使用lambda匿名函数

  类语言元类(类型):

  def __new__(cls,name,bases,attrs):

  attrs[ speak ]=lambda self : print(self . language)

  返回类型。__new__(类别、名称、基数、属性)

  #模式2,使用预定义的功能

  def speak(self):

  打印(“朗读% s“% self . language”)

  #创建元类语言元类

  类语言元类(类型):

  def __new__(cls,name,bases,attrs):

  说话

  #返回类型。__new__(类别、名称、基数、属性)

  返回super(LanguageMetaClass,cls)。__new__(cls.name,bases,attrs)

  #使用创建的元类创建一个类(python2.x与3.x不一致)

  #python2.x

  #默认的新类由type()构造,当__metaclass__在类中定义时,由它构造。__元类_ _搜索顺序:

  #1.找到您自己的__元类_ _属性

  #2.如果有父类,找到父类的__元类_ _通过父类获得。__class__属性)

  #3.如果没有父类,请在模块中查找__元类_ _。

  类人(对象):

  __元类__=语言元类

  def __init__(self,language=中文):

  自我语言=语言

  #python3.x

  #默认的新类由type()构造,可以在指定元类关键字参数后由元类构造。

  class People(object,meta class=language meta class):

  def __init__(self,language=中文):

  自我语言=语言

  p1=人(语言=英语)

  说英语

  p2=人()

  p2 . speak()#说中文

  示例二

  #创建元类AddMetaClass

  类AddMetaClass(类型):

  def __new__(cls,name,bases,attrs):

  attrs[ add ]=self,value:self.append(value)

  返回类型。__new__(类别、名称、基数、属性)

  #python2.x

  类MyList(List): #MyLIST在list的基础上有一个add方法。

  __元类__=添加元类

  及格

  #python3.x

  Classmylist (list,metaclass=addmetaclass): # my list在list的基础上有一个add方法。

  及格

  list1=我的列表()

  列表1.add(1)

  打印(列表1) #[1]

  列表1.add(2)

  打印(列表1) #[1,2]

  

元类type学习总结

  Type是一个元类,即python中的所有类实际上都是type类的实例化对象。

  

type的作用是干什么呢?

  1、我们直接type()来判断一个对象的类型

  type不是一个类吗?为什么可以直接调用?因为type类实际上是一个对象,一个自己类的对象,而方法__cal__()是在type类中实现的,所以我们知道只要实现__cal__()的类,就可以直接调用该类实例化的对象,也就是可调用对象。

  下面给个例子:

  打印(类型(1))

  打印(类型( abc ))

  打印(类型([]))

  运行结果:

  类“int”

  类别“str”

  类别列表

  其实判断一个对象的类型也可以通过isinstance()来判断。

  print(isinstance((),tuple))

  print(isinstance(abc ,str))

  print(isinstance([],list))

  运行结果:

  真实的

  真实的

  真实的

  2、type的第二个作用就是:创建类

  其实这个不常用。一般我们用类来调用,而不用类型;

  像下面这样:

  类型( Foo ,(object,),{a:1})

  以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: