• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-07) 32次浏览 已收录 0个评论

在本篇文章里小编给各位分享了关于python原类、类的创建过程与方法的相关知识点内容,有兴趣的朋友们跟着学习参考下。

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

获取对象的类名

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

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

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

 num=10 string='abc' class MainClass: pas<mark style="color:transparent">来源gaodaimacom搞#代%码网</mark>s p=MainClass() print(num.__class__) # output:  print(string.__class__) # output:  print(p.__class__) # output:  

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

将我们眼中的类作为对象

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

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

 print(int.__class__) # 或者这么写:print(num.__class__.__class__) # output:  print(str.__class__) # output:  print(MainClass.__class__) # output:  

class ‘type’ 这是一个什么鬼?

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

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

 print(type.__class__) output:  

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

为什么是type

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

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

 class type(object): """ type(object_or_name, bases, dict) type(object) -> the object's type type(name, bases, dict) -> a new type """ ... ... ... ... 

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

获取类型

创建新type

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

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

类的99.99%创建方法

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

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

 class MainClass: name='Uranus' 

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

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

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

介绍0.01%的类创建方法

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

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

 def func(): return 'is a function...' # 重点在这里 TypeClass=type('MainClass1',(),{'name':'Uranus','func':func}) print(TypeClass.__class__) # output:  print(TypeClass) # output:  print(TypeClass.__dict__) # output: {'__module__': '__main__', '__weakref__': , '__dict__': , '__doc__': None, 'func': , 'name': 'Uranus'} print(TypeClass.name) # output: Uranus print(TypeClass.func()) # output: is a function... 

好了,现在告诉我,TypeClass是什么,是不是一个类?

我在type中做了什么,是不是创建类名,忽略父类,创建类属性,创建类的实例方法?

传统的class创建,知识将TypeClass这个变量名设置的和你的类名MainClass1一样而已
type的第二种方法你会了么?类的创建过程你明白了么?之前你会么?

感谢大家的阅读和对gaodaima搞代码网的支持。

以上就是python原类、类的创建过程与方法详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python原类、类的创建过程与方法详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址