文章来源:http://blog.csdn.net/zhengzhb/article/details/7359385定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的区别抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,
系统 2019-08-12 09:30:25 1444
追过很多新技术,迷茫于还有太多东西要学,有些找不到方向、不知所措。常在一个叫酷壳的网站上转悠,渐渐想明白了,其实学习技术也像看电影看书一样,要看就看经典的。我们的生命如此短暂,作为程序员的职业生涯可能会更短。与其追逐各种新潮的技术,不如把有限的精力投入到经典的技术之中。平时酷爱看各种技术书籍,但缺乏系统的梳理。读书感悟都散落在每本书的字里行间和空白处。于是借着准备从最经典、最基础知识学习的机会,开始由底向上,系统地整理以前所学。一、计算机数学大学时认真学习
系统 2019-08-12 09:29:44 1444
偶然发现了for…else…这种用法,使用这个实现了break跳出嵌套的for循环In[31]:foriinrange(1,5):...:forjinrange(5,10):...:print(i,j)...:ifj==6:...:break...:else:...:continue...:break1516for…else…的运行逻辑是当for循环正常执行结束就会运行其else语句,如果中途break的话,就不会执行else中的内容上面的代码实现了内存f
系统 2019-09-27 17:57:18 1443
多线程开发可能遇到的问题假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000。但是由于是多线程访问,有可能出现下面情况:fromthreadingimportThreadimporttimenum=0deftest1():globalnumforiinrange(1000000):num+=1print("--test1--num=%d"%num)deftest2():glo
系统 2019-09-27 17:57:16 1443
前言在K近邻的原始算法中,没有对K近邻的方法进行优化,还是遍历训练集,找到与输入实例最近的K个训练实例,统计他们的类别,以此作为输入实例类别的判断。具体的模型理论见:统计学习方法——K近邻法(原始方法)1.K近邻算法的实现在算法实现的过程中,利用的是欧氏距离进行点与点之间的距离度量。在进行数据运算的时候,没有利用numpy,而是利用Python中自带的list来进行数据的计算。defknn(x,dataSet,labels,k):distanceMemor
系统 2019-09-27 17:56:59 1443
译序如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。——EdsgerWybeDijkstra在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic。一般说地道(idiomatic)的python代码,就是指这份代码很pythonic。Python的语法和标准库设计,处处契合着pythonic的思想。而且Python社区十分注重编码风格一的一致性,他们极力
系统 2019-09-27 17:55:36 1443
译序如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。——EdsgerWybeDijkstra在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic。一般说地道(idiomatic)的python代码,就是指这份代码很pythonic。Python的语法和标准库设计,处处契合着pythonic的思想。而且Python社区十分注重编码风格一的一致性,他们极力
系统 2019-09-27 17:55:36 1443
说明:关于类的这部分,我参考了《LearningPython》一书的讲解。创建类创建类的方法比较简单,如下:复制代码代码如下:classPerson:注意,类的名称一般用大写字母开头,这是惯例。当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦。既然大家都是靠右走的,你就别非要在路中间睡觉了。接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。复制代码代码如下:classPerson:def__ini
系统 2019-09-27 17:55:28 1443
Python没有真正的全局变量,在Java和C++中,全局变量则是程序级别的,站在它们的角度,那么python就是没有全局变量,而在python的角度,是有全局变量,python提供global关键字,可以修改全局变量,在python中的全局变量只是针对当前python文件/模块所定义的,python文件就是一个模块,独立的命名空间,模块内定义的变量就只属于该命名空间,so,python没有真正的全局变量,全局变量也只是文件级别。所以Python的全局变量
系统 2019-09-27 17:55:20 1443
1.代码风格在Python中,每行程序以换行符代表结束,如果一行程序太长的话,可以用“\”符号扩展到下一行。在python中以三引号(""")括起来的字符串,列表,元组和字典都能跨行使用。并且以小括号(...)、中括号[...]和大括号{...}包围的代码不用加“\”符也可扩展到多行。在Python中是以缩进来区分程序功能块的,缩进的长度不受限制,但就一个功能块来讲,最好保持一致的缩进量。如果一行中有多条语句,语句间要以分号(;)分隔。以“#”号开头的内容
系统 2019-09-27 17:55:15 1443