关于python3.0的类和类型的关系

Python语法以及面对对象编程 同时被 2 个专栏收录
28 篇文章 0 订阅
4 篇文章 0 订阅

一句话,在python3.0中,类就是类型,类型就是类。
在python中,平常你认为的一些是内置函数的如list(),str()等,其实都是一些内置的类,也就是说,你在使用它的时候都是创建该类的实例。

python3.x所有的类都是新式类(隐式的继承了object元类),新式类是相对于python2.x的经典类说的(显示继承object,也可以是新式类)。新式类有一些变化,今天主要说的是新式类中的类和类型

type()是什么?
你可能会说是一个内置的函数,返回参数的类(型)。
这么说也对,也不对。
首先,对于经典类来说,它确实是内置的函数,用于返回类型,但在python3.x中,type()是一个类,返回一个实例,实例就是参数的类有点拗口,但就只能这么表述。来看一个例子。

class Ex_cls:
    pass
# 创建一个类
instance = Ex_cls()
# 一个类的实例
# 当我们用type返回实例的类型的时候
print(type(instance))
# 输出:<type 'Ex_cls'>
# 这就是类型既类
# 那么对Ex_cls求出类型呢?
print(type(Ex_cls))
# 输出:<type 'type'>
# 这就是所有的type是一个超级大的超类,其他的类都是他的子类
# 我们再求出type的类型呢
print(type(type))
# 输出:<type 'object'>
# 顶级元类是object,也就是我们所说的所有的新式类都继承自这个元类object

看懂了没有,一句话,在新式类中,类就是类型,类型就是类
你用 isinstance()也是一样的

isinstance(x_cls,object)
# 输出:True
# 你用任意的类(数据结构)与object作比较,结果都是true

这就是新式类中关于类和类型的关系!类 = 类型

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值