python
抱剑观花一书生
这个作者很懒,什么都没留下…
展开
-
python多线程安全的单例模式
常用的软件设计模式有23种,单例模式便是其中的一种。那么在面向过程的语言中,我们常常用到全局变量。其实单例模式和全局变量在某种意义上来说近似。譬如我们要读取某些配置文件,有一个专门的类来封装好了,但是如果不用单例模式,会造成程序实例化很多配置文件类的对象,这样的话会造成极大的混乱。再有就是在软件协作开发之中,向上层提供接口的时候,最好也是用单例模式。那么总的来说,单例模式就是面向对象编程的...原创 2018-07-23 17:44:35 · 6532 阅读 · 1 评论 -
python之闭包精讲
很多语言都有闭包,那么闭包究竟是什么呢?来看一个简单的例子。def outer(x): x+=1 def inner(): print(x) return x*5 return inner()a = outer(1)print(a)a= ...原创 2018-07-19 22:03:14 · 381 阅读 · 0 评论 -
python之装饰器最全讲解
不懂指针就不能说自己懂C,那么不懂装饰器,就不能说自己会python。上篇文章说过闭包是用来实现装饰器的,算是有了一个铺垫。 装饰器从字面意思来理解的话,就是我们对一件事物的装饰。那么我们什么时候选择去装饰一件事物呢?当然是这件事物本身无法满足我们的审美,我们要用一些添加一些装饰器来满足我们的需求。那么结合软件开发的场景。我们有的时候写完一个类,一个方法或者函数,忽然发现功能得不到...原创 2018-07-19 22:50:50 · 503 阅读 · 0 评论 -
python 常用文件读写及with的用法
一 CSV文件 csv是逗号分隔值文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开。csv(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式。这种格式的数据通常应用在数据处理方面,比如我们爬虫的数据量较小,不用插入数据库,或者只是临时测试,那么可以把数据存放在.csv文件中,很是方便。下面我们结合pythonCSV模块的源码讲...原创 2018-07-30 13:53:00 · 8012 阅读 · 0 评论 -
基于python的简易web框架实现
一 WSGI 今天要实现的是一个简易的web框架,写博客的目的也是为了让初学者少走弯路,所以这里会循序渐进的讲解。首先我们要明白,web框架,服务器,前端究竟有什么样的关系。难道不能在服务器之中把功能全部实现吗?当然可以,但是这违反了软件开发的原则,叫做单一职责原则。设计模式有23种,一定要有了解。也就是说,所有的设计模式最终的目的就是为了让工程可扩展,可重用。如果把一切东西...原创 2018-07-27 09:37:22 · 1426 阅读 · 0 评论 -
leetcode之旋转数组python实现
原题如下: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 解题思路:首先旋转无论怎样旋转都不会超过数组的最大数。接着分析,如果我们向右旋转一位,可以发现,原来的nums...原创 2018-08-17 09:57:52 · 449 阅读 · 0 评论 -
python与c#面向对象思想之继承
一 基本概念 这里拿C#代表静态语言特性,拿python代表动态语言特性,做一个对比分析。 继承是OOP最重要特性之一,任何类都可以从另一个类中继承,这就是说,这个类拥有它继承的类的所有成员。在 OOP 中,被继承(也称为派生)的类称为父类(也称为基类)。注意, C#中的对象仅能直接派生于一个基类,当然基类也可以有自己的基类,这里注意C#是有单根继承性的,而python是多继承的。...原创 2018-07-17 16:09:54 · 349 阅读 · 0 评论 -
python面向对象思想之封装
python中的面向对象如果有C#/C++基础的话理解起来不难,但是如果只会python中的面向对象,那还是远远不够的。所以博主推荐,一定要掌握一门静态的面向对象的语言,这样的话,才能走得更远。 面向对象永远绕不开的三大特性 封装 继承 多态。为什么要进行封装,在面向过程的语言中,全局变量会有很多,并且不易维护,改动一点点就能造成毁灭性的打击,所以封装可以让我们编程时易维护,可读...原创 2018-07-17 14:51:45 · 950 阅读 · 0 评论 -
python基础知识梳理(一)
关于python里的变量: 在传统的编译型语言中,如果要定义一个变量,需要在变量名前,声明其数据类型。例:int a; 但是在python中却无需这样,如果想给一个变量赋值。直接赋值就行,非常的方便。至于你所赋的值是什么类型,python会自动识别。这样相比于传统语言有几方面优势。第一,有些时候由于对数据类型掌握的不够深,导致的错误可以避免。第二,在我们用一个很大的buffer去接收网络通...原创 2018-04-14 14:52:26 · 560 阅读 · 0 评论 -
python基础知识梳理(二)
python中列表,元组,字典,字符串梳理: 一 列表: 列表是python中非常常用的数据结构。注意,我们上次梳理曾经说过,在python中一切皆对象,所以列表有许多的内置方法来操作列表。我们可以把列表想象成C语言的数组。非常的灵活。 在python中我们初始化一个空列表一般这么写 a =[] 总结一下格式就是 列表名 = [] 。在终端中我们输入dir(a),就可以看出列表...原创 2018-04-14 16:14:41 · 224 阅读 · 0 评论 -
基于python基础知识整合的名片管理系统练习
当学完一些基础知识之后就可以试着做一个最简单的名片管理系统,起码一些知识是用的上的。一:文件结构如图: 可以从文件结构看出来,card_tools.py这个文件是提供card_main.py实现功能的工具模块。那么我们这个名片管理系统实际上的需求大家都懂,无非是增删改...原创 2018-04-15 17:51:27 · 537 阅读 · 0 评论 -
python基础知识梳理之函数
一 复习C函数概念: 对于面向过程的语言,函数是其进行代码运行的主体,譬如C语言。在面向对象的语言之中,函数称为方法。我们可以把函数想象成工厂,函数的参数为工厂未加工的原料,而得到的返回值为该函数运算回来的结果。上面简述了一下函数的作用。下面我们来讨论在python中我们怎么定义一个函数。 在python中用def关键字来定义一个函数。可以有参数也可以没有参数,在这里需要注意的是pyth...原创 2018-05-05 08:34:55 · 222 阅读 · 0 评论 -
python网络爬虫及数据抓取(一)
爬虫分类: 爬虫分为两大类,聚焦爬虫和通用爬虫两种。 通用爬虫:通用网络爬虫是搜索引擎抓取系统的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 通用搜索引擎的工作原理: 通用网络爬虫从互联网中搜索网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,他决定着整个引擎系统的内容是否丰富,信息是否及时,因此其性能的优劣直接影...原创 2018-05-18 15:32:13 · 569 阅读 · 0 评论 -
HTTP协议讲解
HTTP和HTTPS HTTP协议:是一种发布和接收HTML页面的方法。 HTTPS协议:简单讲是HTTP的安全版,在HTTP加入SSL层。 SSL(安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。 HTTP的端口号为80 HTTPS端口号为443HTTP的请求与响应HTTP通信由两部分组成:客户端请求消息与服...原创 2018-05-18 17:14:00 · 429 阅读 · 0 评论 -
python面向对象思想编程总结(一)
OOP编程基本概念 语言的早期是面向过程的,那么什么是面向过程的呢,举个例子,把大象放进冰箱分为三步,打开冰箱门,把大象放进去,把门关上。这种解决把大象放进冰箱里的思维方式,就是面向过程,也就是说,面向过程的思想来解决问题的方式就是来思考解决这个问题需要几步,然后分别去执行这几步就可以了。那么具体怎么做呢? 1) 面相过程 —— 怎么做?把完成某一个需求的 所有步骤 从头到...原创 2018-05-19 10:06:55 · 839 阅读 · 0 评论 -
python爬取珠海二手房房价并生成热力分布图
想要生成热力分布图,首先要爬取房价的数据,所以第一步,我们先把爬虫写出来。一 确定目标URL,实现爬虫,代码如下:import urllib.requestfrom urllib.request import HTTPErrorimport jsonfrom multiprocessing import Poolimport lxml...原创 2018-05-13 22:26:24 · 1720 阅读 · 0 评论 -
python中的线程与linux中的线程
一:多任务的概念 当计算机运行一个程序时,如果没有开启线程,那么整个程序就是单线程的,单线程的意思就是程序在main()函数中是顺序执行的,那么在小型程序中或许单线程执行没什么问题,但是如果遇到类似网络编程就会遇到阻塞的情况,这个时候,如果程序可以并行执行话,就可以方便很多。所以引入了线程机制。二:python中的线程 在python中想要使用线程,先引入threading模块,其实thr...原创 2018-06-10 16:33:44 · 1720 阅读 · 0 评论