要先导入模块,才能调用用模块中定义的函数(才会有该模块的代码提示)。import模块#导入一个模块import模块1,模块2,....#同时导入多个模块from模块import部分#导入一部分from模块import部分1,部分2,部分3....#导入一个模块的多个部分from模块import*#导入整个模块以上的模块均可换为模块.子模块,表示只导入子模块|从子模块中导入。导入之后就可以通过模块名.方法名()调用模块中的函数了。不管导入一个相同模块多少次,
系统 2019-09-27 17:49:40 2178
1动机greenlet包是Stackless的副产品,其将微线程称为“tasklet”。tasklet运行在伪并发中,使用channel进行同步数据交换。一个”greenlet”,是一个更加原始的微线程的概念,但是没有调度,或者叫做协程。这在你需要控制你的代码时很有用。你可以自己构造微线程的调度器;也可以使用”greenlet”实现高级的控制流。例如可以重新创建构造器;不同于Python的构造器,我们的构造器可以嵌套的调用函数,而被嵌套的函数也可以yiel
系统 2019-09-27 17:49:28 2178
理解一个算法最快,最深刻的做法,我觉着可能是自己手动实现,虽然项目中不用自己实现,有已经封装好的算法库,供我们调用,我觉着还是有必要自己亲自实践一下。这里首先说明一下,python这种动态语言,对不熟悉的人可能看着比较别扭,不像java那样参数类型是固定的,所以看着会有些蛋疼。这里环境用的是python2.7。classMessage:#commandMSG_ACCEPTOR_AGREE=0#追随者约定MSG_ACCEPTOR_ACCEPT=1#追随者接受
系统 2019-09-27 17:49:27 2178
python基础学习笔记(八)2013-04-2600:11虫师阅读(...)评论(...)编辑收藏创建自已对象就python非常核心的概念,事实上,python被称为面向对象语言,本章会介绍如何创建对象。以及面向对象的概念:继承、封装、多态。多态:可对不同类的对象使用同样的操作。封装:对外部世界隐藏对象的工作细节。继承:以普通的类为基础建立专门的类对象。多态面向对象程序设计最有趣的特性是多太,它是是让大多数人犯晕的特性。所以,先来介绍这个。多态意思是“有
系统 2019-09-27 17:48:52 2178
numpy.ptp()是计算最大值与最小值差的函数,用法如下:importnumpyasnpa=np.array([np.random.randint(0,20,5),np.random.randint(0,20,5)])print('原始数据\n'a)print('对所有数据计算\n',a.ptp())print('axis=0,按行方向计算,即每列\n',a.ptp(axis=0))#按行方向计算,即每列print('axis=1,按列方向计算,即每行
系统 2019-09-27 17:48:43 2178
0x00:使用xpath进行网页解析#coding:utf-8importrequestsimportosimportrefromlxmlimportetreeimporttimedefget_title(title):#获取标题,创建文件path=r"./Pic/"+titleifos.path.exists(path):#文件夹存在,返回returnpathelse:os.makedirs(path)#创建空文件夹returnpathdefpic_ge
系统 2019-09-27 17:48:15 2178
最近敲代码的时候主要遇到两大问题,第一个是构造自己包的时候找不到package。构造自己package谈两条经验,有助于解决这个问题。1自己构造包的名称尽量不要和Python自带的包重名,起的名字个性化一点。要不然出的bug都不知道错在哪2只要打算把这个文件夹当成一个包,就一定要在这个文件夹同一目录下新建一个__init__.py文件(内容可以为空)一般来说注意这两点,构建包就不成问题。在包的文件夹里面的.py文件称之为模块(文件名就是模块名),当然包里也
系统 2019-09-27 17:48:06 2178
5.16列表生成式l=[]foriinrange(100):l.append('egg%s'%i)print(l)l=['egg%s'%iforiinrange(100)]l=['egg%s'%iforiinrange(1000)ifi>10]print(l)5.17列表生成式与生成器表达式的应用names=['egon','alex_sb','wupeiqi','yuanhao','lxx']res=map(lambdax:x.upper(),name
系统 2019-09-27 17:48:05 2178
文档地址functools.partial作用:functools.partial通过包装手法,允许我们"重新定义"函数签名用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用复制代码代码如下:#args/keywords调用partial时参数defpartial(func,*args,**keywords):defnewfunc(*fargs,**fkey
系统 2019-09-27 17:47:58 2178
定义代码如下importredisimportcontextlibimportpickleimportos,socket,threadingclassRedisLock:def__init__(self,lock_name,host='',port=6379,db=0):self.lock_name=lock_nameself.redis=redis.Redis(connection_pool=redis.ConnectionPool(host=host,
系统 2019-09-27 17:47:19 2178