一 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程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧
Python 3面向对象编程-第三版 这是Packt发布的的代码存储库。 在Python 3.8中使用面向对象的设计模式构建健壮且可维护的软件 这本书是关于什么的? 面向对象编程(OOP)是一种流行的设计范例,其中数据和行为以...
本书提出了一种平衡而灵活的方法,可以将面向对象的原理纳入使用Python的入门课程中。
### Python面向对象编程知识点解析 #### 一、面向对象三大特性及作用 **1. 封装** 封装是面向对象编程中的一个重要概念,它通过隐藏类的内部细节并对外提供公共接口来保护数据的安全性和完整性。封装使得类的使用...
面向对象编程(Object-Oriented Programming,简称OOP)是Python编程中的核心概念之一,它是一种编程范式,强调通过创建对象来组织代码,使得程序更易于理解和维护。本课件详细介绍了Python中的面向对象特性,包括类...
原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包...
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于“对象”的概念,将数据和操作这些数据的方法封装在一起。在Python中,面向对象编程是其核心特性之一,使得Python成为了一种非常适合...
python-3.6.4-amd64.exe。Python [1] (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。...
python程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧
本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...
- **核心概念**:本书主要聚焦于Python 3版本下的面向对象编程(Object-Oriented Programming, OOP)技术。 - **适用对象**:适合对Python有一定了解、希望进一步掌握其面向对象编程特性的开发人员。 - **出版信息**...
资源分类: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
python-iniparse-0.3.1-2.1.el6.noarch.rpm
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据,即属性(以键值对的形式),以及代码,即方法(函数)。面向对象编程的主要思想包括封装、继承...
python面向对象练习-三角形
在Python的世界里,面向对象编程(Object-Oriented Programming, OOP)是核心编程范式之一,它允许我们将复杂的问题拆解为一系列可复用的对象,极大地提高了代码的可维护性和可扩展性。《Python面向对象编程指南》这...
Python 游戏源码 - 九宫格 Python源码Python 游戏源码 - 九宫格 Python源码Python 游戏源码 - 九宫格 Python源码Python 游戏源码 - 九宫格 Python源码Python 游戏源码 - 九宫格 Python源码Python 游戏源码 - 九宫格 ...
Python学习--异常处理思维导图!!来源于网易云课堂王顺子