分享

Python对象主要特征解析 - 51CTO.COM

 击碎星辰 2010-06-08
    Python对象具有三个比较特殊的特征,包括有:标识码的唯一性,类型的应用,以及内容的应用。在这里我们将会针对这些内容做一个详细介绍。

     

    Python编程语言的出现给我们带来了非常大的好处。对于这样一款面向对象的开源语言,其在开发领域中占据着非常重要的地位。在这里我们就先从Python对象的应用开始来一起了解一下这一语言的面向对象特征。

    “万物皆对象”(Everything is object),这是Python这种面向对象语言所倡导的理念。在我们熟悉的C++中,1只是一个整型数,而不是一个对象。但在Python中,1却是一个实实在在的对象,您可以用dir(1)来显示它的属性。

    Python对象都有下面三个特征:

    * 唯一的标识码(identity)

    * 类型

    * 内容(或称为值)

    一旦Python对象被创建,它的标识码就不允许更改。对象的标识码可以有内建函数id()获取,它是一个整型数。您可以将它想象为该对象在内存中的地址,其实在目前的实现中标识码也就是该对象的内存地址。

     

            
    1. >>> class c1:  
    2. pass  
    3. ...  
    4. >>> obj = c1()  
    5. >>> obj  
    6. <__main__.c1 instance at 0x00AC0738> 
    7. >>> id(obj)  
    8. 11274040 

     

    换算一下,11274040就是十六进制的0x00AC0738。

     

            
    1. >>> id(1)  
    2. 7957136 

     

    这就是前面提到的1这个对象的标识码,也就是它在内存中的地址。

    当用is操作符比较两个对象时,就是在比较它们的标识码。更确切地说,is操作符是在判断两个对象是否是同一个Python对象。

            
    1. >>> [1] is [1] 

    其结果是False,是因为这是两个不同的对象,存储在内存中的不同地方。

            
    1. >>> [1] == [1] 

    其结果是True,是因为这两个不同的Python对象有着相同的值。

    与对象的标识码类似,对象的类型也是不可更改的。可以用内建函数type()取得对象的类型。

    有的对象的值是可以改变的,这类对象叫作可变对象;而另外一些对象在创建后其值是不可改变的(如1这个对象),这类对象叫作恒定对象。对象的可变性 是由它的类型决定的,比如数值型(number)、字符串型(string)以及序列型(tuple)的对象是恒定对象;而字典型 (dictionary)和列表型(list)的对象是可变对象。

    除了上面提到的三个特征外,一个Python对象可能:

    * 没有或者拥有多个方法

    * 没有或者有多个名字

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多