一、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)
in ()
----> 1 l4=list(l3)
TypeError: 'int' object is not iterable
In [28]: