python对象(chapter4)
1 python对象有三个特征: 身份和类型是只读的, 如果对象支持不支持更新操作, 那么值也就是只读的.
1.1 身份: 唯一的身份标识, 可以使用内建函数id()得到, 可以看作是对象的内存地址…
1.2 类型: 对象的类型决定该对象保存什么类型的值, 可以进行什么操作, 遵循什么规则., 可以使用内建函数type()查看python对象的类型.
1.3 值: 对象表示的数据项
2 对象属性: 主要有属性, 值, 相关联的可执行代码(method), 一些python类型也有数据属性, 含有数据属性的对象包括但不限于: 类, 类实例, 模块, 复数, 文件.
3 基础数据类型: 数字, 整形, 布尔型, 长整型, 浮点型, 复数型, 字符串, 列表, 元组, 字典.
4 其他内建类型: 类型, None, 文件, 集合/固定集合, 函数/方法, 模块, 类
4.1 type(type(1)) 可以看出类型对象本身也是对象, 它的类型是type
4.2 None的类型是NoneType, NoneType只有一个值, 就是None, 不支持任何运算也没有任何内建方法, 布尔值总返回False
5 每个对象天生都有布尔值, 以下对象的布尔值是False
5.1 None
5.2 False(bool类型)
5.3 所有值为0的数
5.4 ‘’ 空字符串
5.5 [] | () | {} 空列表, 空元组, 空字典
5.6 用户创建的实例如果定义了nonzero(__nonzero__())或length(__len__())且值为0, 那么返回的布尔值也是False
6 当要获取一个对象的布尔值的时候, 首先会调用__nonzero__(必须返回布尔类型或者int类型.)方法, 如果实现了该方法, 就返回该方法返回的布尔值, 如果没有实现该方法, 继续调用__len__方法(该方法返回值必须是大于等于0的), 如果实现了__len__方法, 就根据其返回值返回布尔值.
7 内部类型: python内部机制
7.1 代码: 编译过的python的源代码片段, 是可执行对象. 通过调用内建函数compile()可以得到代码对象. 代码对象可以被exec命令或eval()内建函数来执行. 代码是用户自定义函数的核心, 运行期获得上下文.. __code__是函数的一个属性, 函数除了代码这个属性, 还有函数名, 文档字符串, 默认参数, 全局命名空间等必须的属性
7.2 帧对象: 用于跟踪记录对象
7.3 跟踪记录: 用于异常发生时, 程序访问跟踪记录对象处理程序.
7.4 切片:
7.4.1 步进切片sequence[::number] number为负数, 倒序显示字符串, 正数则正序显示字符串, 数值代表显示字符的step值.
7.4.2 多维切片 sequence[start1: end1, start2: end2]
7
客户给一堆图片要传到后台,图片太大了,上百张图用photoshop改太慢,就想到用python写个简单的批处理。功能简单就是把原图按比例缩小,代码更简单 20多行。
# -*- coding: cp936 -*-
import Image
import glob, os
#图片批处理
def timage():
for files in glob.glob('D:\\1\\*.JPG'):
filepath,filena ......
由于Boost Python跟不上Python版本更新,如下方法调用可能产生TypeError: 'NoneType' object does not support item assignment异常。
Boost Python文档中例子可能产生异常。
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
object ......