`
linvar
  • 浏览: 258995 次
  • 性别: Icon_minigender_1
  • 来自: 未定
社区版块
存档分类
最新评论

python2.x学习笔记(4)-Python对象

阅读更多
1. 所有的 Python 对像都拥有三个特性:身份,类型和值。
  身份:
  每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数 id()来得到。
这个值可以被认为是该对象的内存地址。
  类型
对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数 type()查看 Python 对象的类型。因为在 Python 中类型也是对象
(还记得我们提到 Python 是面向对象的这句话吗?),所以 type()返回的是对象而不是简单的
字符串。
  值
对象表示的数据项

2. 标准类型
数字(分为几个子类型,其中有三个是整型)
整型
布尔型
长整型
浮点型
复数型
字符串
列表
元组
字典

3. 其他内建类型
类型
Null 对象 (None)
文件
集合/固定集合
函数/方法
模块


4. 类型对象和 type 类型对象
  Python 有一个特殊的类型,被称作 Null 对象或者 NoneType,它只有一个值,那就是 None。它不支持任何运算也没有任何内建方法。None 没有什么有用的属性,它的布尔值总是 False。

5. 布尔值
   所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布
尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。
   下列对象的布尔值是 False。
      None
      False (布尔类型)
      所有的值为零的数:
      0 (整型)
      (浮点型)
      0L (长整型)
      0.0+0.0j (复数)
      "" (空字符串)
      [] (空列表)
      () (空元组)
      {} (空字典)

6. 内部类型
       代码
       帧
       跟踪记录
       切片
       省略
       Xrange
 
7. Python 提供了 is 和 is not运算符来测试两个变量是否指向同一个对象。象下面这样执行一个测试
  a is b
   这个表达式等价于下面的表达式
  id(a) == id(b)

8.整数对象和字符串对象是不可变对象,所以 Python 会很高效的缓存它们。这会造成我们认为 Python 应该创建新对象时,它却没有创建新对象的假象。看下面的例子:
  >>> a = 1
  >>> id(a)
  8402824
  >>> b = 1
  >>> id(b)
  8402824
  >>>
  >>> c = 1.0
  >>> id(c)
  8651220
  >>> d = 1.0
  >>> id(d)
  8651204

9. 标准类型内建函数
函数               功能
cmp(obj1, obj2)  比较 obj1 和 obj2, 根据比较结果返回整数 i:
                  i < 0 if obj1 < obj2
                 i > 0 if obj1 > obj2
                 i == 0 if obj1 == obj2
repr(obj) 或 `obj` 返回一个对象的字符串表示
str(obj)         返回对象适合可读性好的字符串表示
type(obj)       得到一个对象的类型,并返回相应的 type 对象

10. str()函数得到的字符串可读性好, 而 repr()函数得到的字符串通常可以用来重新获得该对象, 通常情况下 obj == eval(repr(obj)) 这个等式是成立的.

11. 类型工厂函数
下面这些大家熟悉的工厂函数在老的 Python 版里被称为内建函数:
  int(), long(), float(), complex()
  str(), unicode(), basestring()
  list(), tuple()
  type()
  以前没有工厂函数的其他类型,现在也都有了工厂函数。除此之外,那些支持新风格的类
的全新的数据类型,也添加了相应的工厂函数。下面列出了这些工厂函数:
         dict()
         bool()
         set(), frozenset()
         object()
         classmethod()
         staticmethod()
         super()
         property()
         file()

12. 如果让我们最啰嗦的描述标准类型,我们也许会称它们是 Python 的“基本内建数据对象原始类型”。
“基本”,是指这些类型都是 Python 提供的标准或核心类型。
“内建”,是由于这些类型是 Python 默认就提供的
“数据”,因为他们用于一般数据存储
“对象”,因为对象是数据和功能的默认抽象
“原始”,因为这些类型提供的是最底层的粒度数据存储
“类型”,因为他们就是数据类型

13. 存储模型
分类            Python 类型
标量/原子类型    数值(所有的数值类型),字符串(全部是文字)
容器类型        列表、元组、字典

14.更新模型
分类         Python 类型
可变类型      列表, 字典
不可变类型    数字、字符串、元组

15.以访问模型为标准的类型分类
访问模型
分类             Python 类型
直接访问              数字
顺序访问            字符串、列表、元组
映射访问            字典

16. 标准类型分类
数据类型  存储模型   更新模型   访问模型
数字      Scalar   不可更改   直接访问                      
字符串    Scalar   不可更改   顺序访问
列表    Container   可更改   顺序访问      
元组    Container   不可更改  顺序访问     
字典   Container    可更改   映射访问

17. Python不支持的类型
    (1).Python 没有 char 或 byte 类型来保存单一字符或 8 比特整数。你可以使用长度为 1 的字符串表示字符或 8 比特整数。
    (2).Python 替你管理内存,因此没有必要访问指针。在 Python 中你可以使用 id()函数得到一个对象的身份号, 这是最接近于指针的地址。 因为你不能控制这个值,所以其实没有太大意义。其实在 Python 中, 一切都是指针。
    (3).Python 的普通整数相当于标准整数类型,不需要类似 C 语言中的 int, short, long 这三种整数类型。
    (4).Python 的浮点类型实际上是 C 语言的双精度浮点类型。Python 认为同时支持两种浮点类型的好处与支持两种浮点类型带来的开销不成比例,所以 Python 决定不支持单精度浮点数。对那些宁愿放弃更大的取值范围而需要更高精确度的用户来说, Python 还有一种十进制浮点数类型 Decimal, 不过你必须导入 decimal 模块才可以使用它。
分享到:
评论

相关推荐

    Python库 | jupyterlab-0.24.0-py2.py3-none-any.whl

    `jupyterlab-0.24.0-py2.py3-none-any.whl` 是一个适用于Python 2和3的JupyterLab版本,它提供了丰富的功能和高度的可扩展性,为数据科学、机器学习和开发工作提供了高效且灵活的平台。通过安装和使用JupyterLab,...

    统计学习方法笔记-基于Python算法实现源码.zip

    统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于...

    Python学习笔记--皮大庆.pdf.zip

    【Python学习笔记--皮大庆.pdf.zip】是一个针对初学者的Python编程教程,源自英文书籍《How to think like a computer scientist》。这本书以易懂的方式介绍了Python语言的基础知识,旨在帮助没有编程背景的人快速...

    python爬虫学习笔记-scrapy框架(1)

    python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python ...

    Python学习笔记1 ~ Python学习笔记9 - 海龟画图.zip

    Python学习笔记0001 - 安装与配置Python开发环境 Python学习笔记0002 - 海龟画图 - 初画图形 Python学习笔记0003 - 海龟画图 - 变量 Python学习笔记0004 - 海龟画图 - for循环 Python学习笔记0005 - 海龟画图 - ...

    皮大庆Python学习笔记

    Python基础入门教程,适合Python初学者,文档内容包括, 目录 前言 i 第一章 程序 1 1.1 程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 什么是调试 . . . . . . . . . . . . . . . ....

    python学习笔记1-(廖雪峰教程,菜鸟教程)python基础.pdf

    以上就是Python学习笔记1中的主要内容,这些基础知识构成了Python编程的基础,是学习更高级特性和应用的基础。对于初学者来说,熟练掌握这些内容是非常重要的。在后续的学习中,还会涉及到函数、模块、面向对象编程...

    Python学习笔记--笔记2

    Python学习笔记--笔记2

    Python学习笔记--皮大庆

    Python学习笔记--皮大庆

    Python库 | cauldron_notebook-0.3.3-py2.py3-none-any.whl

    `-py2.py3-none-any` 部分在文件名中表明了这个版本的Cauldron Notebook兼容Python 2.7和Python 3.x版本。这意味着无论你是在较旧的Python 2环境中,还是在更现代的Python 3环境下,都可以安装和使用这个库。这种跨...

    Python库 | notework-0.0.26-py3-none-any.whl

    "notework-0.0.26-py3-none-any.whl"的命名遵循了PEP 427的命名规范,其中"py3"表示它兼容Python 3.x版本,"none"表示它不针对特定的C运行时库,而"any"则意味着它可以在任何平台上运行。 notework库本身可能是一个...

    Apress.Beginning.Python.From.Novice.to.Professional.Sep.2005.pdf + 皮大庆 学习笔记

    总的来说,这本书结合皮大庆的学习笔记,为Python初学者提供了一个全面而深入的学习资源。通过系统的阅读和实践,读者不仅可以掌握Python的基本语法,还能了解到Python在实际项目中的应用技巧,从而逐步成长为一名...

    Python 学习笔记.pdf

    这份学习笔记涵盖了Python的基本概念、数据类型、控制结构、函数、模块与包、面向对象编程等重要内容。下面将对这些知识点进行详细的解读。 ### 1. Python简介 - **Python** 是一种高级编程语言,因其简洁易读的...

    Python库 | notekeras-0.7.28-py3-none-any.whl

    《深入理解Python库notekeras-0.7.28-py3-none-any.whl》 ...对于那些在Python环境下使用Keras进行深度学习研究或开发的用户来说,notekeras是一个值得考虑的工具,它可以帮助他们更好地组织和优化他们的工作流程。

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...

    Anaconda3-2020.11-Windows-x86_64.exe.zip

    Anaconda是广受欢迎的数据科学平台,它包含了Python编程语言以及一系列用于数据分析、机器学习和科学计算的库。这个"Anaconda3-2020.11-Windows-x86_64.exe.zip"文件是Anaconda针对64位Windows系统的2020.11版本的...

    Python 笔记源码——内含python后端&机器学习等.zip

    Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...

    Python学习笔记——socket通信相关资源文件

    本篇笔记将深入探讨Python中的socket通信,并结合提供的资源文件进行讲解。 首先,让我们了解什么是socket。Socket是操作系统为网络通信提供的一种接口,可以理解为两台计算机之间通信的通道。在Python中,我们可以...

Global site tag (gtag.js) - Google Analytics