您的位置:首页 > 编程语言 > Python开发

python核心编程 二

2017-04-27 00:00 218 查看
摘要: 对象

对象

对象的三个特性

身份 -- id(obj)

类型 -- tyoe(obj)



None

__nonzero__

用户创建的类实例如果定义了nonzero(__nonzero__())或length(__len__())且值为0,那么它们的布尔值就是 False。

内部类型

代码 (可通过exec()或eval()执行)



跟踪记录

切片

省略
省略对象用于扩展切片语法中,起记号作用。 这个对象在切片语法中表示省略号。类似Null 对象 None, 省略对象有一个唯一的名字 Ellipsis, 它的布尔值始终为 True

Xrange

__cmp__

如果是用户自定义对象, cmp()会调用该类的特殊方法 __cmp__()

str()和repr()

str()函数得到的字符串可读性好, 而repr()函数得到的字符串通常可以用来重新获得该对象,
通常情况下 obj == eval(repr(obj)) 这个等式是成立的

字符串格式化操作

格式化符号

格式化字符 | 转换方式
-- | --
%c | 转换成字符(ASCII 码值,或者长度为一的字符串)
%ra | 优先用 repr()函数进行字符串转换
%s | 优先用 str()函数进行字符串转换
%d / %i | 转成有符号十进制数
%ub | 转成无符号十进制数
%ob | 转成无符号八进制数
%xb/%Xb (Unsigned) | 转成无符号十六进制数(x/X 代表转换后的十六进制字符的大小写)
%e/%E | 转成科学计数法(e/E 控制输出 e/E)
%f/%F | 转成浮点数(小数部分自然截断)
%g/%G | %e 和%f/%E 和%F 的简写
%% | 输出%

格式化操作符辅助指令

符号 | 作用
-- | --

| 定义宽度或者小数点精度

| 用做左对齐

| 在正数前面显示加号( + )
<sp> | 在正数前面显示空格
#x/#X | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 | 显示的数字前面填充‘0’而不是默认的空格
% | '%%'输出一个单一的'%'
(var) | 映射变量(字典参数)
m.n | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

### unicode字符串
Unicode 操作符必须出现在原始字符串操作符前面.

数据库对unicode的支持

数据库服务器(MySQL,PostgreSQL,SQL Server,等等)

数据库适配器(MySQLdb 等等)

Web 开发框架(mod_python,cgi,Zope,Plane,Django 等等)

数据库方面最容易对付,你只要确保每张表都用 UTF-8 编码就可以了

数据库适配器可能有点麻烦,有些适配器支持 Unicode 有些不支持,比如说 MySQLdb,它并不是默认就支持 Unicode 模式,
你必须在 connect()方法里面用一个特殊的关键字 use_unicode来确保你得到的查询结果是 Unicode 字符串.

mod_python 里面开启对 Unicode 的 支 持 相 当 简 单 , 只 要 在 request 对象里面把 text-encoding 一项设成"utf-8"就行了, 剩下的 mod_python 都会替你完成,Zope 等其他复杂的系统可能需要更多的工作来支持 Unicode

与字符串有关的模块

模块 | 描述
-- | --
string | 字符串操作相关函数和工具,比如 Template 类.
re | 正则表达式:强大的字符串模式匹配模块
struct | 字符串和二进制之间的转换
c/StringIO | 字符串缓冲对象,操作方法类似于 file 对象.
base64 | Base 16,32,64 数据编解码
codecs | 解码器注册和基类
crypt | 进行单方面加密
diffliba | 找出序列间的不同
hashlibb | 多种不同安全哈希算法和信息摘要算法的 API
hmac | HMAC 信息鉴权算法的 Python 实现
md5d | RSA 的 MD5 信息摘要鉴权
rotor | 提供多平台的加解密服务
shad | NIAT 的安全哈希算法 SHA
stringprepe | 提供用于 IP 协议的 Unicode 字符串
textwrape | 文本打包和填充
unicodedata | Unicode 数据库

与序列相关的模块

模块 | 描述
-- | --
数组 | 一种受限制的可变序列类型,要求所有的元素必须都是相同的类型。
copy | 提供浅拷贝和深拷贝的能力
operator | 包含函数调用形式的序列操作符,比如 operator.concat(m,n)就相当于连接操作(m+n)。
re | Perl 风格的正则表达式查找(和匹配)
StringIO/cStringIO | 把长字符串作为文件来操作,比如 read(),seek()函数等,C 版的更快一些,但是它不能被继承.
Textwrapa | 用作包裹/填充文本的函数,也有一个类
types | 包含 Python 支持的所有类型
collectionsb| 高性能容器数据类型

对象赋值,深拷贝与浅拷贝

### 对象赋值
  对象赋值是引用赋值,只是给原有的对象增加一个标签而已,并未创建新的对象
### 序列类型的浅拷贝
浅拷贝,创建了新的对象,该对象指向原有对象的元素的引用

完全切片操作 [:]

工厂函数 list()

copy模块的copy()函数

深拷贝

深拷贝,创建新对象,该对象与原有对象毫无关系


赋值,深拷贝与浅拷贝

图解Python深拷贝和浅拷贝

字典比较顺序

长度

键, 按keys()方法返回的键比计较


4.如果以上全相等,则 dict1 == dict2 => return 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python核心编程
相关文章推荐