首页 > 代码库 > Python 二、Python对象类型及其运算

Python 二、Python对象类型及其运算

一、Python对象的相关术语

      Python中一切皆对象,python程序中保存的所有数据都是围绕对象这个概念展开的;所有的对象都是由类实例化而来的,只不过这些类有些是python内置的类;例如,整数和浮点数,字符串都是由python内置的类实例化而来的。除此之外用户还可以自定义类型,就是类。


python程序中存储的所有数据都是对象

每个对象都有一个身份、一个类型和一个

         例如,school=“MaGe Linux”会以“MaGe Linux”创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址)而school就是引用这个具体位置的名称

对象的类型也称对象的类别,用于描述对象的内部表示及它支持的方法和操作

创建特定类型的对象时,有时也将该对象称为该类型的实例

class:自定义类型

type:内置类型

instance:实例化

实例被创建后,其身份和类型就不可改变

       如对象值是可修改的,则称为可变对象

       如果对象的值不可修改,则称为不可变对象

如果某个对象包含对其它对象的引用,则将其称为容器;


大多数对象都拥有大量特有的数据属性和方法

类=数据(变量)+方法(函数)

       属性与对象相关的值;就是类实例化为对象时可以为内部的变量赋值,对象内部可用变量名就称之为对象的属性

       方法:被调用时将在对象上执行某些操作的函数

       使用点(.)运算符可以访问属性和方法

In [1]: name="xiejun"      #name是引用内存中的地址的名称

In [2]: id(name)
Out[2]: 28642832           #身份就是内存中的地址

In [3]: type(name)
Out[3]: str                #类型也就是类

In [4]: str.    
str.capitalize  str.format      str.isupper     str.rfind       str.startswith
str.center      str.index       str.join        str.rindex      str.strip
str.count       str.isalnum     str.ljust       str.rjust       str.swapcase
str.decode      str.isalpha     str.lower       str.rpartition  str.title
str.encode      str.isdigit     str.lstrip      str.rsplit      str.translate
str.endswith    str.islower     str.mro         str.rstrip      str.upper
str.expandtabs  str.isspace     str.partition   str.split       str.zfill
str.find        str.istitle     str.replace     str.splitlines


Python内置函数id()可返回一个对象的身份,即该对象在内存中的位置

is运算符用于比较两个对象的身份

type()用于返回一个对象的类型

对象类型本身也是一个对象,称为对象的类

该对象的定义是唯一的,且对于某类型的所有实例都是相同的

所有类型对象都有一个指定的名称,可用于执行类型检查,


两个对象的比较:

1、值比较:对象中的数据是否相同

2、身份比较:两个变量名引用的是否为同一对象

3、类型比较:两个对象的类型是否相同

In [4]: num1=5

In [5]: num2=5

In [6]: num1==num2        #值相同
Out[6]: True

In [7]: num1 is num2      #值相同身份不一定相同,只是此处恰好相同
Out[7]: True

In [8]: type(num1) is type(num2)  #类型相同
Out[8]: True


二、Python对象类型

1、Python核心数据类型

类型分类                                 对象类型                                                               例子

数字                  int,log,foloat,complex(复数),bool(布尔值)        3077, 3.14, 300000

字符                                  str,unicode,                                             ‘mageedu.com’, “spam”

列表                         [‘one’, ‘two’, ‘three’]

字典                        {‘course’:’linux’, ‘tutor’:’mage’}

元组                        (32, ‘spam’, ‘eggs’)

文件                         myFile=open(‘/tmp/tfile’,’r’)

集合                         set(‘abc’), {‘a’, ‘b’, ‘c’}

其它类型                  类型、None、布尔型

编程单元类型            函数、模块、类

与实现相关的类型      编译的代码堆栈跟踪

其它文件类型工具:pipes(管道),fifos(先进先出管道),sockets


2、类型转换

 1)使用内置函数:

             str(),repr()精确值或format()转换为特定格式将非字符型数据转换为字符

           int():转换为整数

             float():转换为浮点数

             list():将字符串转换为列表

             tuple():将字符串转换为元祖

             set():将字符串转为集合

             frozenset():将字符串转换为不可变集合

             dict(d):创建字典;d必须是键值对元祖序列

             chr():将整数转换为字符

              ord():将字符转换为整数值

             hex():将整数转换为十六制字符串

              bin():二进制

              oct():八进制

In [20]: l1="xie jun"

In [21]: type(l1)
Out[21]: str

In [22]: l2=list(l1)

In [23]: type(l2)
Out[23]: list

In [24]: print l2
[‘x‘, ‘i‘, ‘e‘, ‘ ‘, ‘j‘, ‘u‘, ‘n‘]

In [25]: l3=12345

In [26]: type(l3)
Out[26]: int

In [27]: l4=list(l3)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-da565bf35804> in <module>()
----> 1 l4=list(l3)

TypeError: ‘int‘ object is not iterable

In [28]:



本文出自 “xiexiaojun” 博客,请务必保留此出处http://xiexiaojun.blog.51cto.com/2305291/1851456

Python 二、Python对象类型及其运算