【美妙的Python之三】Python 对象解析

美妙的Python之Python对象

简而言之: Python 是能你无限惊喜的语言,与众不同。


        Python对象概念的理解,是理解Python数据存储的前提。Python使用对象来存储数据,构造任何类型的值都是对象。


        1.Python 对象:


        Python的对象有3个属性:

        标识:每个对象都有一个唯一的标识,通过  id(  )  可以查看对象的标识。

        类型:对象的类型,指明该对象可以存储的数据类型,通过  type(  )  可查看。

        值    :对象存储数据的值。

        如: 

        Python内部的实现机制:a=1,Python先创建一个整形对象,将该整形对象的值设置为1,最后该对象赋给变量a。a=2,Python再创建一个新的整形对象,将该对象的值设置为2,最后将该对象赋给变量a。

        Python的内存管理:每个对象都有一个引用计数器,对象赋值给变量名时引用计时器+1,当一个引用销毁时,引用计数器 - 1,当引用计数器为0,也即所有引用都不存在时,系统会销毁这个对象。


        2.变量名与对象:


        Python基于对象的存储数据机制,变量名与对象的关系不同于C/C++变量名与内存地址。Python中,通过变量名,不能改变对象的值,而是变量名指向了新的对象。C/C++中,变量名重新赋值,会改变对应内存地址的值。      

        Python中,变量名可以指向任何类型的对象,允许改变一个变量名指向新的不同类型的数据对象。C/C++中,一个变量名有其特定的数据类型。


       3.Python标准类型


        Python语言提供了标准的数据类型,数据存储基于对象机制,上面关于对象的介绍能加深我们队Python数据的理解。

  • 数字
  • 整形
  • 布尔型
  • 长整形
  • 复数型
  • 字符串
  • 列表
  • 元组
  • 字典

        这些Python标准类型,随后的章节会将深入的介绍。 

        Python的对象存储数据机制:实质上是Python封装了内存地址,这种封装的优势在于Python可以实现自动的内存管理等功能,减轻开发人员的负担,代价则是Python相对于C/C++等语言,需要更多的空间消耗与性能损耗。

        


        

        



【美妙的Python之三】Python 对象解析,布布扣,bubuko.com

时间: 2024-12-23 20:00:00

【美妙的Python之三】Python 对象解析的相关文章

爬虫学习 05.Python网络爬虫之三种数据解析方式

爬虫学习 05.Python网络爬虫之三种数据解析方式 引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指定数据解析.因为大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据.因此,本次课程中会给大家详细介绍讲解三种聚焦爬虫中的数据解析方式.至此,我们的数据爬取的流程可以修改为: 指定url 基于r

使用C语言为python编写动态模块(2)--解析python中的对象如何在C语言中传递并返回

楔子 编写扩展模块,需要有python源码层面的知识,我们之前介绍了python中的对象.但是对于编写扩展模块来讲还远远不够,因为里面还需要有python中模块的知识,比如:如何创建一个模块.如何初始化python环境等等.因此我们还需要了解一些前奏的知识,如果你的python基础比较好的话,那么我相信你一定能看懂,当然我们一开始只是介绍一个大概,至于细节方面我们会在真正编写扩展模块的时候会说. 关于使用C为python编写扩展模块,我前面还有一篇博客,强烈建议先去看那篇博客,对你了解Pytho

使用C语言为python编写动态模块(1)--从底层深度解析python中的对象以及变量

楔子 我们知道可以通过使用C语言编写动态链接库的方式来给python加速,但是方式是通过ctypes来加载,通过类CDLL将动态链接库加载进来得到一个对象之后,通过这个对象来调用动态链接库里面的函数.那么问题来了,我们可不可以使用C语言为python编写模块呢?然后在使用的时候不使用ctypes加载动态库的方式,而是通过python的关键字import进行加载. 答案是可以的,我们知道可以通过编写py文件的方式来得到一个模块,那么也可以使用C语言来编写C源文件,然后再通过python解释器进行编

python的私有变量解析

在内的内部定义并使用,外部无法访问,以双下划线作为前作,定义后被python转为 _classname__变量名了 -------------------------------------------------------------------------------------- In [1]: class aa: ...: __x = 12 #私有变量_ _x ...: def px(self): ...: print 'private __x', aa.__x #内部访问 ...:

Python -- Json 数据编码及解析

Python  --  Json  数据编码及解析 Json 简单介绍 JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. 这个 sites 对象是包含 3 个站点记录(对象)的数组. { "sites": [ { "name":"菜鸟教程" , "url":"www.

zg手册 之 python2.7.7源码分析(1)-- python中的对象

源代码主要目录结构 Demo: python 的示例程序 Doc: 文档 Grammar: 用BNF的语法定义了Python的全部语法,提供给解析器使用 Include: 头文件,在用c/c++编写扩展模块时使用 Lib: Python自带的标准库,用python编写的 Modules: 用c编写的内建模块的实现,zlib,md5 等 Objects: 内建对象类型的实现 list,dict 等 PC:      windows 平台相关文件 PCbuild: Microsoft Visual

Python之code对象与pyc文件(三)

上一节:Python之code对象与pyc文件(二) 向pyc写入字符串 在了解Python如何将字符串写入到pyc文件的机制之前,我们先来了解一下结构体WFILE: marshal.c typedef struct { FILE *fp; int error; int depth; /* If fp == NULL, the following are valid: */ PyObject *str; char *ptr; char *end; PyObject *strings; /* di

python之文件对象

防伪码忘情公子著 文件对象是用来访问文件系统接口所对应的数据的 文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构-即在磁盘上组织文件的方法 计算机文件或称文件.电脑档案.档案是存储在某种长期储存设备或临时存储设备中的一段数据流并且归属于计算机文件系统管理之下 概括来讲 文件是计算机中由OS管理的具有名字的存储区域 在Linux系统上文件被看做是字节序列 要想把数据存储到文件中有一个前提那就是必须序列化非序列化的数据是不能简单的存储在文件系统中的文件中的 对于python来说文件对象不仅可

Python的基础--对象 转

对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识符.对象一旦创建,那么它的标识符就不会改变,可以把标识符看作对象在内存中的地址.is 操作可以用来比较两个对象的标识符,函数id()用来返回对象标识符(python中返回对象在内存中的地址). 类型.对象的类型也是不可变的,对象的类型决定了该对象支持的操作,另外也决定了该对象可能的值.type()函数返