py对象:
-
身份:
每一个对象都有一个唯一的身份标识
使用内建函数id()来获取此标识, 这个值可以被认为是该对象的内存地址。 -
类型:
对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则
使用内建函数type()查看Python对象的类型 -
值:对象表示的数据项。
标准类型(基本数据类型)
- 数字(分为几个子类型,其中有三个是整型)
- Integer整型
- Boolean布尔型
- Long integer长整型
- Floating point real number浮点型
- Complex number复数型
- String字符串
- List列表
- Tuple元组
- Dictionary字典
其他内建类型
-
类型:
即type对象:
-
Null对象(None)
类比与C++的void类型
其布尔值为false
-
文件
-
集合/固定集合
-
函数/方法
-
模块
-
类
内部类型:
这里暂时没啥用, 仅作记录
- 代码
- 帧
- 跟踪记录
- 切片
- 省略
- Xrange
标准类型操作符:
对象身份(地址)比较:
使用is
& is not
操作符进行
用于判断两个obj是否是同一个对象
python有较为复杂的缓存机制, 并不会每一次都创建新对象
布尔类型
就是前头讲的and
or
not
标准类型内建函数
type()
返回一个类型对象:
cmp()
cmp()
函数是Python 2中的一个用于比较两个列表, 数字或字符串等的大小关系的函数
在Python 3中已经无法使用这个函数了
str() & repr() & ‘’
- repr() & ‘’
返回的是一个对象的“官方“字符串表示
也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象
对python&开发人员友好, 返回更准确的定义
-
str()
返回一个可读性好的字符串
对用户友好, 推荐仅在与用户交互时使用
这俩具体的差别可看:
https://blog.csdn.net/Watkins_OS/article/details/100042680?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight
type() & isinstance()
type的各种返回值:
isinstance(object, classinfo)
判断实例是否是classinfo类
等效于:
if type(3)==type(0)
使用isinstance有效避免了大规模的if-else
isinstance支持元组的形式, 避免了函数的重复调用, 提高了性能
工厂函数(内建函数):
常用的工厂函数:
-
int (), long (), float (), complex ()
-
str(), unicode (), basestring ()
-
list (), tuple()
-
type()
-
dict ()
-
bool ()
-
set (), frozenset ()
-
object ()
-
classmethod ()
-
staticmethod ()
-
super ()
-
property ()
-
file ()
标准类型分类:
不支持的类型
-
char & byte
-
指针
-
short & long
python中所有的都是长整型
-
float 单精度
py中所有的都是double双精度