一 Python中一切都是对象。
既然python所有的一切都是对象,那么从另一个角度去对待python中的面向对象---没有传统的类型,只有对象,类型也是对象。
那么又怎么去判断哪个是类型哪个是实在的对象呢?
python中有两类对象,一类就是type,一类就是实例对象,通过'class'语句来创建类型(type)对象(传统的定义一个类),通过'()'来创建普通的非类型对象。
用'class'语句来创建一个类型对象,免不了又要掉到传统的类型中去,再讲一个秘密:
python如何实例化对象?
通过使用type对象的__new__方法和__init__方法来创建和初始化对象,感觉上而言类型像是一个工厂来生产对象。
测试一下:
#定义一个list对象,不可继承
>>> a = list.__new__(list)
类型也是这样生产出来的..
#定义一个Student类型对象,可继承
>>> Student = type.__new__(type, 'Student', (), {})
既然类型对象都是这样构造出来的,那就有理由相信所有的类型对象都是type类型的实例(默认情况下type是类型的'元类'(这个词很唬人),其实就是工厂形式的东西)。
>>> list
<type 'list'>
>>> list.__class__
(<type 'type'>)
*type对象是系统本身存在的。它也可以看作是它自身的一个实例,一种获取别的对象的类型的方式。python中是通过__class__属性来标志是否是某个类型的实例。
二 object和type对象的关系
>>> object.__class__
<type 'type'>
>>> type.__class__
<type 'type'>
>>> object.__bases__
()
>>> type.__bases__
(<type 'object'>,)
这几句语句包含了三个概念1.对象 2.继承 3.类型
__class__属性指的是该对象是什么类型的实例。
__bases__属性指的是该对象的类型的父类有哪些。
首先,在python中一切都是对象,包括object和type,
*(object和type对象是系统的原有值,python中本身存在的,我的理解是c创建的一个struct对象)。
第二,object是一切对象的基类,所有其他类型都是从该类型中继承而来的。
第三,object作为一个对象它是type类型的一个实例。
第四,type作为类型它继承自object类型。
分享到:
相关推荐
第六章python面向对象-编程测试练习题及答案解析全文共6页,当前为第1页。第六章python面向对象-编程测试练习题及答案解析全文共6页,当前为第1页。第六章 python面向对象 第六章python面向对象-编程测试练习题及...
资源名称:Python系列视频教程 面向对象资源目录:【】python视频教程-课堂实录-面向对象-01(类-对象-属性)【】python视频教程-课堂实录-面向对象-03(类-构造-析构)【】python视频教程-课堂实录-面向对象-04(类...
本书提出了一种平衡而灵活的方法,可以将面向对象的原理纳入使用Python的入门课程中。
原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包...
python面向对象练习题,资料,教育资料
python程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧
python面向对象精彩讲解视频,详细讲解了python在面向对象中的用途。
Python 3面向对象编程-第三版 这是Packt发布的的代码存储库。 在Python 3.8中使用面向对象的设计模式构建健壮且可维护的软件 这本书是关于什么的? 面向对象编程(OOP)是一种流行的设计范例,其中数据和行为以...
python程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧
Dusty Phillips-Python 3 Object-oriented Programming-Packt Publishing (2015),资源来自互联网
资源分类:Python库 所属语言:Python 资源全名:python-jsonpath-object-transform-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python-2.7.5-90.el7.x86_64.rpm
面向对象课件,价值200元,讲的挺详细的,能起到提纲挈领的作用
OpenCV-Python-Toturial-中文版.pdf
python强大的面向对象能力,让你更好的理解python核心语法
只能说是非常简单的面向对象的图书管理系统,纯纯的代码行操作,没有本地存储,可以自己添加
Python基础教程-第7章-Python面向对象.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
深度学习入门-Python语言学习-15面向对象其他-入门学习
深度学习入门-Python语言学习-14面向对象继承-入门学习