类、对象体系

一. Python面向对象特点

Python所谓的“一切皆对象”总结而言可以理解如下,

  1. Python语言中,基本类型也是对象。相比其他语言,Python不再区别对待基本类型和对象,所有基本类型内部均由对象实现。 一个整数是一个对象,一个字符串也是一个对象。
  2. 类型也是一种对象 ,称为类对象。 整数类型是一个对象,字符串类型是一个对象,程序中通过 class 关键字定义的类也是一个对象。
  3. 通过类型实例化得到的对象,称为实例对象

Python面向对象最大的特点可以总结为,“ 类 ”和“ 对象 ”在 Python 内部都是通过对象实现的
Alt

二. Python类、对象体系

2.1 实例对象、类型对象、type类型

2.1.1 内置类型

以int类为例,

变量a是个整数对象(实例对象),其所属类是整数类型(类型对象)

>>> a = 1
>>> type(a)
<class 'int'>
>>> isinstance(a, int)
True

>>> type(int)
<class 'type'>

整数类型的类型是“type”,即类型的类型。type类型比较特殊,它的实例对象还是type类对象。

2.1.2 自定义类型

自定义一个狗类型(Dog)及其子类—猎狗类型(Sleuth),

class Dog(object):

    def yelp(self):
        print('woof')


class Sleuth(Dog):

    def hunt(self):
        pass

测试代码如下,

>>> dog = Dog()
>>> dog.yelp()
woof
>>> type(dog)
<class '__main__.Dog'>
>>> type(Dog)
<class 'type'>


>>> sleuth = Sleuth()
>>> sleuth.hunt()
>>> type(sleuth)
<class '__main__.Sleuth'>
>>> type(Sleuth)
<class 'type'>
>>> issubclass(Sleuth, Dog)
True

2.2 object类型

Python中除object类自身外,其他类型均继承于object类,即object 是所有类型的基类。

>>> issubclass(int, object)
True

>>> issubclass(Dog, object)
True

>>> issubclass(Sleuth, object)
True

2.3 type和object类间的关系

  1. object 类是所有类型的基类,本质上是一种类型,因此其类型必然是type。
  2. type类是所有类型的类型,本质上也是一种类型,因此其类型必须是它自己。
  3. object是所有类型的基类,理论上object类也是type类的基类。

上述结论用代码表示如下,

>>> type(object)
<class 'type'>
>>> type(object) is type
True

>>> type(type)
<class 'type'>
>>> type(type) is type
True

>>> issubclass(type, object)
True
>>> type.__base__
<class 'object'>

2.4 类、对象关系图示

将2.1-2.3节的内容使用关系图表示,
Alt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值