python3入门与进阶笔记_python的进阶笔记(一)

本文探讨了Python中对象的本质,包括对象的关系(如类型实例关系)、一切皆对象的原理、type()函数的作用以及object和type的复杂关系。通过实例和图示解释了面向对象编程的基础概念,以及type和object作为源对象的相互依存性。
摘要由CSDN通过智能技术生成

一切皆对象

如上所说,python中一切皆对象,都可以找到实例化它的类(使用type函数),比如

>>> type(1)

>>> type('asd')

>>> type(list)

甚至定义的一个方法也是一个对象

>>> def a():

... print('1')

...

>>> type(a)

那么神奇的地方来了,type()方法的类是什么?

>>> type(type)

这涉及到另一个关键的概念,object,在python中是最顶层的基类。先上图:

在python中存在两种关系

父子关系(图中实线表示):形象比喻为蛇是一种爬行动物(Snake is a kind of reptile)。其中,蛇(snake)是子类,爬行动物(reptile)是父类。蛇拥有爬行动物的特征,同时,又拥有标志自己是一条蛇的特征。

类型实例关系(图中虚线表示):这种关系存在于两个对象之中,其中一个对象(实例)是另一个对象(类型)的具体实现。我有一条宠物蛇叫Squasher,那么Squasher就是蛇的一个实例。英文描述为:"Squasher is an instance of snake".

我们都说面向对象,面向对象,对象(object)到底是什么?对象是python的重要核心之一:它是某个实体的抽象描述。对象具有以下特征:身份:即内存地址,可用id()函数查询

类型:如对象为int,str,list类型等

值:比如1,‘12’,[1,2,3]

注意:因为一切皆对象,所以数字2是一个对象,它的类型int也是一个对象,是type的对象,如图所示,那type又是谁的对象?没错,是自己的对象。

有了对象的概念,我们对object和type进行测试

>>> object

>>> type

>>> type(object)

>>> object.__bases__

()

>>> type.__bases__

(,)

>>>object和type是python中的两个源对象,当我们尝试介绍它们是就会陷入“先有鸡还是现有蛋”难题,到底先介绍谁?事实上,它们是互相依赖对方来定义,所以它们不能分开而论。

我们先前说过type()是用来获对象的类型的。事实上,它既是一个对象,也是获取其它对象的类型的方法。

object是type的实例,但object没有父类因为它本身就是所有对象的超类

分别输出type的类型和超类。即,object是type的超类。type的类型是它自己

如果继续实验

>>> isinstance(object,object)

True

>>> isinstance(type,object)

True

可以简单理解为一切都继承object,即type也继承object。因为type和object都是type的实例,而type继承object,则两者也就是object的实例,这个关系也可以应用在其他对象中。比如

>>> isinstance(1,object)

True

>>> isinstance('123',object)

True

PS:第一次整理笔记,逻辑混乱,权当尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值