Python对象主要特征解析


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

  • Python中文字符具体应用技巧分享
  • 常见Python应用范围总结概览
  • Python程序转为EXE文件正确实现方法讲解
  • Python绑定C++程序具体实现方法浅谈
  • Python显示UTF-8中文文本具体操作方法讲

“万物皆对象”(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对象可能:

* 没有或者拥有多个方法

* 没有或者有多个名字

评论关闭