`
小鸡啄米
  • 浏览: 38850 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python面向对象-理清object与type的关系

阅读更多

一  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类型。




 

0
0
分享到:
评论

相关推荐

    Python系列视频教程面向对象

    资源名称:Python系列视频教程 面向对象资源目录:【】python视频教程-课堂实录-面向对象-01(类-对象-属性)【】python视频教程-课堂实录-面向对象-03(类-构造-析构)【】python视频教程-课堂实录-面向对象-04(类...

    python程序设计基础-PPT课件;自己授课整理的ppt

    python程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧

    Python-3-Object-Oriented-Programming-Third-Edition:Packt发行的《 Python 3面向对象编程》第三版

    Python 3面向对象编程-第三版 这是Packt发布的的代码存储库。 在Python 3.8中使用面向对象的设计模式构建健壮且可维护的软件 这本书是关于什么的? 面向对象编程(OOP)是一种流行的设计范例,其中数据和行为以...

    Python中的面向对象编程Object-Oriented Programming in Python

    本书提出了一种平衡而灵活的方法,可以将面向对象的原理纳入使用Python的入门课程中。

    python面向对象练习题.pdf

    ### Python面向对象编程知识点解析 #### 一、面向对象三大特性及作用 **1. 封装** 封装是面向对象编程中的一个重要概念,它通过隐藏类的内部细节并对外提供公共接口来保护数据的安全性和完整性。封装使得类的使用...

    python面向对象课件

    面向对象编程(Object-Oriented Programming,简称OOP)是Python编程中的核心概念之一,它是一种编程范式,强调通过创建对象来组织代码,使得程序更易于理解和维护。本课件详细介绍了Python中的面向对象特性,包括类...

    面向对象编程基础_python面向对象_python教程_

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于“对象”的概念,将数据和操作这些数据的方法封装在一起。在Python中,面向对象编程是其核心特性之一,使得Python成为了一种非常适合...

    python-3.6.4-amd64.exe

    python-3.6.4-amd64.exe。Python [1] (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。...

    python程序设计基础-PPT课件.zip 包括了学习的源代码

    python程序设计-第一章-基础知识.pptx" ...python程序设计-第六章-面向对象-基础.ppt python程序设计-第七章-面对对象-进阶.pptx" python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧

    Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...

    Python 3 Object-oriented Programming - Second Edition(附源码),2015

    《Python 3 Object-oriented Programming - Second Edition》是Dusty Phillips撰写的一本面向对象编程书籍,专为想要深入了解Python 3中的面向对象编程概念的读者而设计。这本书详细介绍了如何利用Python 3的强大...

    Python 3 Object-Oriented Programming, 2nd Edition

    - **核心概念**:本书主要聚焦于Python 3版本下的面向对象编程(Object-Oriented Programming, OOP)技术。 - **适用对象**:适合对Python有一定了解、希望进一步掌握其面向对象编程特性的开发人员。 - **出版信息**...

    Python库 | python-jsonpath-object-transform-0.1.tar.gz

    资源分类: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-2.7.5-90.el7.x86_64.rpm

    python-iniparse-0.3.1-2.1.el6.noarch.rpm

    python-iniparse-0.3.1-2.1.el6.noarch.rpm

    2014年度辛星python面向对象教程

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据,即属性(以键值对的形式),以及代码,即方法(函数)。面向对象编程的主要思想包括封装、继承...

    python面向对象练习-三角形

    python面向对象练习-三角形

    Python 3 Object-Oriented Programming, Second Edition.pdf

    本书《Python 3 Object-Oriented Programming, Second Edition》是一本专门介绍Python 3面向对象编程的书籍。从标题和描述中,我们可以提炼出以下知识点: 1. Python 3编程语言:本书专注于Python语言的第三个主要...

    趣学python源代码-python-for-kids source code

    Python是支持面向对象编程的,虽然对于初学者可能稍显复杂,但Python-for-Kids也会适度地介绍类和对象的概念。孩子们会学习如何定义类,创建对象,并理解类与对象之间的关系,如继承、封装和多态等。 五、游戏和...

    Python 面向对象编程指南 new

    在Python的世界里,面向对象编程(Object-Oriented Programming, OOP)是核心编程范式之一,它允许我们将复杂的问题拆解为一系列可复用的对象,极大地提高了代码的可维护性和可扩展性。《Python面向对象编程指南》这...

Global site tag (gtag.js) - Google Analytics