建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会
系统 2019-09-27 17:52:26 1886
前序Thereshouldbeone-andpreferablyonlyone-obviouswaytodoit.――――theZenofPython意译:Python提倡用一种,而且最好是只有一种方法来完成一件事虽然Python有以上的提倡,但却在字符串格式化方面,没有做到这一点。字符串格式化敲黑板,划重点:在Python中有至少三种常见方式实现字符串格式化:%-formatting格式(Python2.6以前,推荐输出时使用)str.format()格
系统 2019-09-27 17:52:21 1886
生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器。通过以下两种方式构建一个生成器:1、通过生成器函数2、生成器表达式生成器函数:函数deffunc1(x):x+=1returnxprint(func1(5))生成器函数deffunc1(x):x+=1yieldxg_obj=func1(5)print(g_obj.__next__())一个next对应一个yield。yieldVSreturnreturn结束函数,给函数的执行者返回值yie
系统 2019-09-27 17:50:36 1886
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信。由于managers模块封装很好,不必了解网络通信的细节,就可以很容易地编写分布式多进程
系统 2019-09-27 17:50:30 1886
Python装饰器,分两部分,一是装饰器本身的定义,一是被装饰器对象的定义。一、函数式装饰器:装饰器本身是一个函数。1.装饰函数:被装饰对象是一个函数[1]装饰器无参数:a.被装饰对象无参数:复制代码代码如下:>>>deftest(func):def_test():print'Callthefunction%s().'%func.func_namereturnfunc()return_test>>>@testdefsay():return'hellowor
系统 2019-09-27 17:50:21 1886
这里先解释一下几个概念-位置参数:按位置设置的参数,隐式用元组保存对应形参.平时我们用的大多数是按位置传参.比如有函数deffunc(a,b,c),调用func(1,2,3).即a=1,b=2,c=3-关键字参数:可以通过关键字设置参数,不用关心参数位置,隐式用字典保存形参.比如有函数deffunc(a,b,c),调用func(b=1,c=2,a=3),即a=3,b=1,c=2普通格式复制代码代码如下:deffunc(opt_args):...return
系统 2019-09-27 17:50:13 1886
Python在debug方面的支持还是不错的,在明确代码意义的情况下,通过log、print和assert分析错误原因,配合单元测试可以很高效。然而,实际工作中大量代码很可能出自他人之手,这种情况下,使用debugger就显得更加高效了。一、在控制台下进行程序调试PDB如果你熟悉命令行调试工具(例如gdb、lldb),那么使用Python中的PDB将获得非常好的体验,PDB不仅支持项目启动时进行调用,也支持在Pythonshell中交互式调试;功能上,支持
系统 2019-09-27 17:50:11 1886
推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统。本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小组整理。它包含1,10和2亿个评级。Movielens还有一个网站,我们可以注册,撰写评论并获得电影推荐。接下来我们就开始实战演练。在这篇文章中,我们会使用Movielens构建一个基于item的简易的推荐系统。在开始前,第一件事就是导入pandas和numPy
系统 2019-09-27 17:49:46 1886
文件基本语法file=open(‘文件名’,mode)编码encoding=‘utf8’读模式存在返回True,否则抛出异常FileNotFoundError写模式存在返回True,否则新建文件mode读r写w追加a二进制b读写+操作读取所有内容read()读取一行readline()读取所有行列表readlines()关闭文件close()自动关闭withopen(目标文件)asf:存取Python对象pickle写对象dump(对象,目标文件)读对象l
系统 2019-09-27 17:49:39 1886
可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。1.Matplotlib基本概念Matplotlib是python的一个数据可视化工具库,专门用于开发2D图表(包括3D图表),操作简单。2.Matplotlib三层结构容器层容器层由Canvas、Figure、Axes三部分组成。Canvas位于最底层的系统层,充当画板,即放置Figure的工具。Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在
系统 2019-09-27 17:49:11 1886