python原类,类的创建过程与方法详解

  

今天为大家介绍一下python中与class 相关的知识……

  

<强>获取对象的类名
  

  

python是一门面向对象的语言,对于一切接对象的python来说,咱们有必要深入的学习与了解一些知识
  

  

首先大家都知道,要获取一个对象所对应的类,需要使用类来进行检索。
  

  

但如果我们只是一个简单的赋值语句,能这么使用么?让我们看下下面的代码:
  

        num=10   字符串=' abc '   MainClass类:   通过   p=MainClass ()      打印(num.__class__)   #输出:& lt;类“int”比;   打印(string.__class__)   #输出:& lt;类str的祝辞   打印(p.__class__)   #输出:& lt;类__main__.MainClass的祝辞   之前      

通过上面的代码我们看到了,不论我们是简单的赋值操作,还是我们自己去定义一个类,并且通过这个类生成了一个对象。我们都可以使用__class__进行来查询对象所对应的方法。此处应该大多数人都是了解的。继续往下走

  

将我们眼中的类作为对象
  

  

刚才我们通过__class的方式获取了str, int,还有我们自定义的MainClass这三个类名。
  

  

但如果我们继续把他们作为对象,那么所对应的类是谁呢?让我们打印下
  

        打印(int.__class__) #或者这么写:打印(num.__class__.__class__)   #输出:& lt;类类型的祝辞   打印(str.__class__)   #输出:& lt;类类型的祝辞   打印(MainClass.__class__)   #输出:& lt;类类型的祝辞   之前      

类“类型”这是一个什么鬼?

  

它叫原类,是创造其他类的类…
  

  

有人要问了,输入就是祖宗了么?还有没有祖宗的祖宗?你可以自己验证啊,按照上面的方法

        打印(type.__class__)   输出:& lt;类类型的祝辞   之前      

这下死心了啊,这类型个祖宗上面没有祖宗了。哈哈…。

  

<强>为什么是类型
  

  

类型这个函数我们经常会用的到,比如一个对象,我们想知道它是什么类型的,那么我们会使用类型(xxx)
  

  

那么类型它到底是什么?看源码喽…

        类类型(对象):   ”“”   类型(object_or_name、基地、dict类型)   类型(对象)→对象的类型   类型(名称、基地、dict)→一种新型   ”“”   ……   ……   之前      

看到注释的时候我们明白了,类型有两个用法

  

<强>获取类型

  

<>强创建新类型

  

相信第一点,我们都经常用,否了解。
  

  

第二点是干嘛的?让我们留一个悬念,接着往下看

  

类的99.99%创建方法
  

  

所有人不管是java的还是Python的都明白,创建一个类么,类+类名好了
  

  

那么你知道你在类+类名,然后赋值或者定义实例方法的时候到底内存做了什么
  

        MainClass类:   name=疤焱跣恰?   之前      

这个方法应该是比通过高档一分钱不到的脑残类了。可你知道在内存中它做了什么么?

  
      <李>首先他创建了一个变量,变量的名字叫MainClass李   <李>之后python开辟了一块内存空间,用于创建一个类,类名为ClassMain李   <李>将ClassMain这个变量指向ClassMain李   <李>在这个方法中创建一个dict的字典李   <李> dict这个字典指向一个内存空间,存放着{名称:天王星}   
  

和你们想的一样么?先不说一样不一样,估计很多人都要说我是瞎说的…没关系

  

介绍0.01%的类创建方法
  

  

刚才留了一个疑问,类型的第二种用法,用来创建一个新类型的
  

  

它是做什么的呢?让我先来演示一段代码
  

        def func ():   返回的是一个函数……”   #重点在这里   TypeClass=类型(“MainClass1”,(){“名称”:“天王星”、“函数”:func})      打印(TypeClass.__class__)   #输出:& lt;类类型的祝辞      打印(TypeClass)   #输出:& lt;类__main__.MainClass1的祝辞      打印(TypeClass.__dict__)   #输出:{“__module__”:“__main__”,“__weakref__”: & lt;属性的__weakref__‘MainClass1 objects>,“__dict__”: & lt;属性的__dict__‘MainClass1 objects>,“__doc__”:没有,func: & lt;函数func 0 x00000000024ddea0>,“名字”:“天王星”}      打印(TypeClass.name)   #输出:天王星      print (TypeClass.func ())   #输出:是一个函数…   

python原类,类的创建过程与方法详解