设为首页 加入收藏

TOP

Python对象
2015-07-16 12:54:52 来源: 作者: 【 】 浏览:23
Tags:Python 对象

Python是一门面向对象的语言,在Python中一切都是对象,函数是对象,类型也是对象。


下面就看看Python中对象相关的内容。


Python对象有三个基本的要素:


下面看看以下代码:


?通过代码中可以看到,我们定义了一个int类型的数值对象,以及一个函数对象,通过内建的dir()函数,我们可以查看对象支持的属性/方法:



在Python中有两个最基本的对象,,这两个对象是所有对象的起源。


通过下面的代码看看的关系:



代码中使用了"__class__"属性来查看对象的类型,以及"__bases__"属性来查看对象的父类,这两个属性很重要,可以查看本对象跟其他对象的关系。


根据上面代码的输出可以得到下面的对象关系图:



在Python对象系统中,的关系就像鸡和蛋的关系,不能说谁先于(创建)谁,两者是相互依赖的,共同构成了Python对象系统的基础。


介绍到这里是不是感觉有点绕,没关系,我们继续看看下面关于对象的分类。


在Python中,所有的对象可以分成两类:Type Object(类型对象,没错,类型也是一个对象)和Non-type Object(非类型对象)。


下面通过一个具体的例子来看看对象的分类:



根据上面例子的输出可以得到下面的对象关系图:



这里我们就以list、mylist为例进行分析:


通过上面的分析我们可以验证Python对象分类的原则:


通过前面的分析可以看到,Type Object(类型对象)包括:


Type Object(类型对象)有两个重要的特性:


回到上面的对象图,Type Object(类型对象)就是存放在前两个方格中的对象。


那么其余的对象就是Non-type Object(非类型对象),回到对象图,Non-type Object(非类型对象)就是存放在第三个方格中的对象。实线不能出现在第三个方格中,因为这里的对象都不能进行子类化(继承);同样,虚线箭头不能出现在第三个方格中,因为这里的对象都不能进行实例化。


本身是一个类型对象;同时,是所有类型对象(包括自身)的类型,也就是说,对所有的类型对象进行type()或者获取"__class__"属性都将得到


我们可以导入types模块,然后通过dir()内建函数来查看所有的内置类型对象,这些类型对象的类型都是



同样,是一个类型对象(因为type(object)是);同时,是所有类型对象(除去本身)的父类


这里需要提一下的是,type()这个内置函数以及"__class__"这个属性,这两种方式都可以得到对象的类型,一般来说两种方式得到的结果是相同的。


但是,对于Python中的经典类(classic class),type()和"__class__"的结果就是不同的了(这里就不介绍classic class和new-style class了):



对于new-style class,type()和"__class__"的结果就是相同的了。


本文介绍了Python对象中的一些基本点:


通过这些点,应该可以对Python对象有基本的了解。当需要进行对象分析的时候,不妨试试文中使用的对象图,通过这个关系图,可以更加直观的看到对象之间的关系。?


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇jQuery入门——进度条 下一篇Python基础教程 - global关键字及..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: