Python
文章平均质量分 71
epsilon1
这个作者很懒,什么都没留下…
展开
-
Python 序列化
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d = dict(name='Bob', age=20, score=88)可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'。我们把变量从内存中变成可存储或传输的过原创 2015-12-01 18:46:07 · 615 阅读 · 0 评论 -
Python 多线程
多任务可以由多进程完成,也可以由一个进程内的多线程完成。我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。Python的标准库提供了两个模块:thread和threading,threa原创 2015-12-01 20:59:35 · 700 阅读 · 1 评论 -
Python--操作文件和目录
首先我们介绍Python文件读写:读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个原创 2015-12-01 18:24:41 · 890 阅读 · 0 评论 -
CentOS 安装 pip
yum install 貌似无法正常安装 pip (Ubuntu下直接 apt-get install python-pip),其实python的包有三种安装方式:1、easy_install 升级包: easy_install -U ">="2、pip install 升级包: pip install --upgrade >=删除包: pip uninstal原创 2015-11-30 22:01:35 · 1326 阅读 · 0 评论 -
Python--CentOS 安装 PIL
之前安装pip折腾了一段时间,现在用 pip 安装PIL一直报错:Could not find a version that satisfies the requirement PIL (from versions: )Some externally hosted files were ignored as access to them may be unreliable (use --a原创 2015-11-30 22:41:40 · 1326 阅读 · 0 评论 -
Python--访问限制
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:>>> bart = Student('Bart Simpson', 98)>>> bart.score98>>> bart.score = 59>>> bar原创 2015-11-30 23:29:26 · 1900 阅读 · 1 评论 -
Python编写带参数decorator
def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。如果有的函数非常重要,希望打印出'[INFO] call xxx()...原创 2015-06-23 21:49:44 · 1848 阅读 · 1 评论 -
Python开发环境搭建(win7)
一、安装配置Python其实在开发python最好在ubuntu环境下,简单也便于扩展各个package。这次来讲一下如何在win7上搭建Python开发环境。由于python的跨平台性。在windows下和ubuntu下基本上没什么差别。下面从几个不步骤来搭建开发环境。1.下载(https://www.python.org/downloads/)安装python.2.原创 2015-06-14 21:47:00 · 1264 阅读 · 0 评论 -
Python初始化实例属性
虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。例如,Person类应该在创建的时候就拥有 name、gender 和 birth 属性,怎么办?在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:class原创 2015-06-25 21:41:37 · 1985 阅读 · 0 评论 -
Python使用__future__
Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。例如,Python 2.7的整数除法运算结果仍是整数:>>> 10 / 33但是,Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数:>>> 10 / 33.33333原创 2015-06-25 21:18:56 · 1575 阅读 · 0 评论 -
Python定义类方法
和属性类似,方法也分实例方法和类方法。在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。要在class中定义类方法,需要这么写:class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __i原创 2015-06-25 22:00:40 · 2139 阅读 · 0 评论 -
Python访问限制
我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:class Person(object): def __init__(self, name): self.name = name self._title = '原创 2015-06-25 21:45:51 · 1055 阅读 · 0 评论 -
Python动态导入模块
如果导入的模块不存在,Python解释器会报 ImportError 错误:>>> import somethingTraceback (most recent call last): File "", line 1, in ImportError: No module named something有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStr原创 2015-06-25 21:16:32 · 1077 阅读 · 0 评论 -
Python偏函数
当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:>>> int('12345')12345但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:>>> int('12345', base原创 2015-06-24 22:40:01 · 1243 阅读 · 0 评论 -
Python完善decorator
@decorator可以动态实现函数功能的增加,但是,经过@decorator“改造”后的函数,和原函数相比,除了功能多一点外,有没有其它不同的地方?在没有decorator的情况下,打印函数名:def f1(x): passprint f1.__name__输出: f1有decorator的情况下,再打印函数名:def log(f): def w原创 2015-06-24 22:32:02 · 975 阅读 · 0 评论 -
Python 多进程
要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。原创 2015-12-01 20:31:23 · 511 阅读 · 0 评论