Python积累
来源:互联网 发布:tenga 知乎 编辑:程序博客网 时间:2024/05/17 22:53
Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核。多线程的并发在Python中就是一个美丽的梦。import functools
是导入functools
模块。模块的概念稍候讲解。现在,只需记住在定义wrapper()
的前面加上@functools.wraps(func)
即可。返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。生成器的两种实现方式 1列表生成式改用() 2利用yieldpython实现下标循环>>> for i, value in enumerate(['A', 'B', 'C']):... print i, value...0 A1 B2 C
from collections import Iterable isinstance('abc', Iterable)判断是否可迭代
for value in d.itervalues()
for k, v in d.iteritems()
isinstance(x, (int, float)) type(xxx)也可以判断类型
>>> import types>>> type('abc')==types.StringTypeTrue>>> type(u'abc')==types.UnicodeTypeTrue>>> type([])==types.ListTypeTrue>>> type(str)==types.TypeTypeTrue
>> setattr(obj, 'y', 19) # 设置一个属性'y'>>> hasattr(obj, 'y') # 有属性'y'吗?True>>> getattr(obj, 'y') # 获取属性'y'19
最后注意到有一种类型就叫TypeType
,所有类型本身的类型就是TypeType
,比如:
>>> type(int)==type(str)==types.TypeTypeTrue
Python函数在定义的时候,默认参数L
的值就被计算出来了,即[]
,因为默认参数L
也是一个变量,它指向对象[]
,每次调用该函数,如果改变了L
的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]
了。
为什么要设计str
、None
这样的不变对象呢?因为不变对象一旦创建,对象内部的数据就不能修改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。
ord() 转字符为unicode编码 chr()转unicode为字符 int()
字符串转数字
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示
以Unicode表示的str
通过encode()
方法可以编码为指定的bytes
,例如:
>>> 'ABC'.encode('ascii')b'ABC'>>> '中文'.encode('utf-8')b'\xe4\xb8\xad\xe6\x96\x87'
len('中文') = 2 计算字符数 要获取占用空间 可以 len('中文'.encode('utf-8'))
阅读全文
0 0
- Python积累
- python积累
- python积累
- Python积累
- Python知识积累
- Python点滴积累
- Python学习积累《一》
- Python 学习积累《一》
- python 脚本编程积累
- 我的python积累
- python 常用命令积累
- python 脚本编程积累
- Python学习积累《二》
- python 知识点积累
- python编程问题积累
- Python 匹配字符积累
- python知识积累
- python技巧积累
- 51nod 1013 3的幂的和
- 数据结构与算法专题之线性表——链表(三)循环链表
- vb.net 教程 12-2 HtmlDocument类 3
- Java反射机制(一)
- C# Winform 窗体美化(十、自定义窗体)
- Python积累
- 0-1背包和完全背包问题辨析
- Qt开源项目
- Mybatis之逆向工程
- SqlSessionFactory(二)
- Linux下两个常见的编译错误
- * 24种设计模式——迭代器模式
- 非标准硬件控制之增加系统API
- 安卓文本样式-Spannable的使用