python对象之对象基础1

简介:

  python程序中保存的所有数据都是围绕对象这个概念来构建的。对象包括一些基本的数据类型,如数字、字符串、列表、字典。但也可以通过类的形式创建用户定义的对象。

  python 使用对象模型来存储数据。构造任何类型的值都是一个对象。 

  所有的 Python 对像都拥有三个特性:身份,类型和值

  身份:

  每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数 id()来得到。 这个值可以被认为是该对象的内存地址。您极少会用到这个值,也不用太关心它究竟是什么。

  类型

  对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数 type()查看 Python 对象的类型。因为在 Python 中类型也是对象,所以 type()返回的是对象而不是简单的 字符串。 

  

  对象表示的数据项

  上面三个特性在对象创建的时候就被赋值,除了值之外,其它两个特性都是只读的。对于 新风格的类型和类, 对象的类型也是可以改变的。 

【1】对象属性

  用“.”(点语法)可以访问到对象的属性

a = 1 + 2j      #创建一个复数
r = a.real      #获得实部(属性)
#1.0

b = [0,1,2]     #创建一个列表
b.append(3)     #使用append方法为列表添加一个新元素
#[0, 1, 2, 3]

【2】标准类型

  • 数字 Numbers (数字:可以分为int(有符号数型)、long(长整形)、float(浮点型)、complex(复数型))
  • 布尔型(true、false)
  • 字符串 String
  • 列表 List
  • 元组 Tuple
  • 字典 Dictionary

【3】其他内建类型

  • 类型
  • Null对象(None)
  • 文件
  • 集合/固定集合
  • 函数/方法
  • 模块

  -3.1类型对象和type类型对象
    通过调用 type()函数你能够得到特定对象的类型信息: 

type(1)
#<type 'int'>

    不过你应当意识到它并不是一个简简单单的告诉你 42 是个整数这样 的字符串。您看到的<type 'int'>实际上是一个类型对象,碰巧它输出了一个字符串来告诉你 它是个 int 型对象。 

    所有类型对象的类型都是type

type(type(1))
#<type 'type'>

  -3.2None,python的null对象

    python有一个特殊的类型,被称作 Null 对象或者 NoneType,它只有一个值,那就是 None。 它不支持任何运算也没有任何内建方法。 

    None 没有什么有用的属性,它的布尔值总是 False。 

    所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布 尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。

    下列对象的布尔值是 False:

  • None
  • False (布尔类型)
  • 所有的值为零的数: 0 (整型)、(浮点型)、0L (长整型)、0.0+0.0j (复数)
  • "" (空字符串)
  • [] (空列表)
  • () (空元组)
  • {} (空字典)

 【4】内部类型

  -4.1 代码对象

    代码对象是编译过的 Python 源代码片段,它是可执行对象。通过调用内建函数 compile() 可以得到代码对象。代码对象可以被 exec 命令或 eval()内建函数来执行。   

    代码对象本身不包含任何执行环境信息, 它是用户自定义函数的核心, 在被执行时动态 获得上下文。(事实上代码对象是函数的一个属性)一个函数除了有代码对象属性以外,还有一 些其它函数必须的属性,包括函数名,文档字符串,默认参数,及全局命名空间等等。

  -4.2 帧对象

   帧对象表示 Python 的执行栈帧。帧对象包含 Python 解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码对象(参见上文),本地及全局名字空 间字典以及当前指令等。每次函数调用产生一个新的帧,每一个帧对象都会相应创建一个 C 栈帧。 

  -4.3 跟踪记录对象

    当你的代码出错时, Python 就会引发一个异常。如果异常未被捕获和处理,解释器就会退出脚本运行,显示类似下面的诊断信息:

     Traceback (innermost last):
     File "<stdin>", line N?, in ???
     ErrorName: error reason

    当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建。如果一个异常有 自己的处理程序,处理程序就可以访问这个跟踪记录对象。 

  -4.4 切片对象

  -4.5 省略对象

    省略对象用于扩展切片语法中,起记号作用。 这个对象在切片语法中表示省略号。类似Null 对象 None, 省略对象有一个唯一的名字 Ellipsis, 它的布尔值始终为 True. 

  -4.6 XRange对象

    调用内建函数 xrange() 会生成一个 Xrange 对象,xrange()是内建函数 range()的兄弟版本, 用于需要节省内存使用或 range()无法完成的超大数据集场合。

  

 

 

posted @ 2018-02-26 06:40  今晚打老虎i2016  阅读(276)  评论(0编辑  收藏  举报