Python核心编程笔记----Python对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python核心编程笔记----Python对象相关的知识,希望对你有一定的参考价值。

本章内容:

Python对象

內建类型

标准类型操作符

值的比较

对象身份比较

布尔类型

标准类型內建函数

标准类型总览

各种类型

不支持的类型

Python对象

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

 身份:唯一的身份标识,对象的内存地址,内建函数id()可以得到。(极少用到)     只读

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

 值:对象表示的数据项

 对象属性:python用句点(.)标记法来访问属性。最常用的属性是函数和方法,   也有一些python类型也有数据属性,含有数据属性的 对象包括:类,类实例,模块,复数和文件

        

标准类型

  数字

  Integer     整型

  Boolean   布尔型

  Long integer  长整型

  Floathing point real number  浮点型

  Complex  number  复数型

  String     字符串

  List          列表

  Tuple      元组

  Dictionary   字典

其他內建类型:

  类型

  Null对象

  文件

  集合/固定集合

  函数/方法

  模块

  类

类型对象和type类型对象

  >>> type(42)

  <type ‘int‘>

 >>> type(type(42))

 <type ‘type‘>   所有类型对象的类型是type    默认元类

None------Python的Null对象

 Null对象或者NoneType只有一个值None,它不支持任何运算也没有任何內建方法。None没有什么有用的属性,它的布尔值总是False

 对象的布尔值是False: None False 所有的值为零的数 0(整型)0.0(浮点型)0L(长整型) 0.0+0.0J(复数)“ ”(空字符串)[ ](空列表)( )(空元组){ }(空字典) 

内部类型

 代码,帧,跟踪记录,切片,省略,Xrange

代码对象:

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

帧对象:

   帧对象表示Python的执行栈帧。每次函数调用产生一个帧,每一个帧对象都会相应创建一个C栈帧。用到帧对象的一个地方是跟踪记录对象     

 跟踪记录对象:

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

切片对象:

   当使用python扩展的切片语法时,会创建切片对象。

   切片语法允许对不同的索引切片操作,包括步进切片、多维切片和省略切片。

   多维切片语法: sequence[start1:end1,start2:end2]或使用省略sequence[...,start1:end1],也可以由內建函数slice()来生成

   步进切片:sequence[起始索引:结束索引:步进值]

>>> foostr = ‘abcde‘

>>> foostr[::-1]

‘edcba‘

>>> foostr[::-2]

‘eca‘

>>> foolist = [123,‘xba‘,342.23,‘abc‘]

>>> foolist[::-1]

[‘abc‘, 342.23, ‘xba‘, 123]

省略对象:

       

XRange对象:

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

       

标准类型操作符

对象值的比较

   >>> 2 == 2

    True

    >>> 2.46 <= 8.33

    True

    >>> ‘abc‘ == ‘xyz‘

    False

    >>> 3 < 4 < 7

    True

    >>> 4 > 3 == 3

    True

    >>> 4 < 3 < 5 != 2 < 7

    False

    比较操作是比较的对象的数值而不是对象本身

标准类型值比较操作符:

    expr1 < expr2        ;  expr1小于expr2

    expr1 > expr2        ;  expr1大于expr2

    expr1 <= expr2      ;  expr1小于等于expr2

    expr1 >= expr2      ;  expr1大于等于expr2

    expr1 == expr2      ;  expr1等于expr2

    expr1  != expr2       ;  expr1不等于expr2

    expr1 <> expr2      ;  expr1不等于expr2

对象身份比较:  
    对象可以赋值到另一个变量,因为每个变量都指向同一个数据对象,只要任何一个引用发生改变,该对象的其他引用也会随之改变   
    foo1和foo2指向相同的对象    

    foo1 = foo2 = 4.3

            foo1 = 4.3

            foo2 = foo1

 foo1和foo2指向不同的对象

    foo1 = 4.3

    foo2 = 1.3 + 3.0

 测试俩个变量是否指向同一个对象:

    a is b

    id(a)  == id(b)

>>> a = [ 5,‘hat‘,-9.3]

>>> b = a

>>> a is b

True

>>> a is not b

False

>>> b = 2.5e-5

>>> b

2.5e-05

>>> a

[5, ‘hat‘, -9.3]

>>> a is b

False

>>> a is not b

True

标准类型对象身份比较操作符

obj1 is obj2       ;obj1和obj2是同一个对象

obj1 is not obj2    ;obj1和obj2不是同一个对象

    布尔类型

标准类型布尔操作符

not expr                 ;expr的逻辑非 

expr1 and expr2    ;expr1和expr2的逻辑与

expr1 or expr2       ;expr1和expr2的逻辑或

标准类型內建函数

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对象   type(object)                                     


存储模型分类:

标量/原子类型      数值,字符串

容器类型          列表、元组、字典


更新模型:

可变类型          列表,字典

不可变类型         数字,字符串,元组


访问类型

直接访问           数字

顺序访问           字符串、列表、元组

映射访问           字典



以上是关于Python核心编程笔记----Python对象的主要内容,如果未能解决你的问题,请参考以下文章

[学]《Python 核心编程》学习笔记

Python核心编程笔记(类)

《Python核心编程》读书笔记

Pytho核心编程笔记——第三章

[学] 《Python 核心编程》学习笔记

《python核心编程》——正则表达式学习笔记