随笔分类 -  Python

摘要:在 Python 中,我们可以用多种方法来实现单例模式: 使用模块 使用 __new__ 使用装饰器(decorator) 使用元类(metaclass) # mysingleton.py class My_Singleton(object): def foo(self): pass my_sing 阅读全文
posted @ 2017-12-03 16:08 ninxin18 阅读(345) 评论(0) 推荐(0)
摘要:在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passing_arguments(function_to_decorate): def a_wrapper_ 阅读全文
posted @ 2017-12-02 22:16 ninxin18 阅读(9918) 评论(1) 推荐(1)
摘要:1.函数名的命名规则: 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号; 函数名是区分大小写的。 函数名不能是保留字。 2. 形参和实参 形参:形式参数,不是实际存在,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型 阅读全文
posted @ 2017-12-02 15:22 ninxin18 阅读(951) 评论(0) 推荐(0)
摘要:Tornado既是一个web server,也是web framework。而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型。 Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器, 阅读全文
posted @ 2017-11-26 20:40 ninxin18 阅读(13024) 评论(0) 推荐(0)
摘要:1. select 原理 在多路复⽤的模型中, ⽐较常⽤的有select模型和epoll模型。 这两个都是系统接⼝, 由操作系统提供。 当然, Python的select模块进⾏了更⾼级的封装。 ⽹络通信被Unix系统抽象为⽂件的读写, 通常是⼀个设备, 由设备驱动程序提供, 驱动可以知道⾃身的数据 阅读全文
posted @ 2017-11-26 14:50 ninxin18 阅读(2484) 评论(0) 推荐(0)
摘要:一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 注:计算机(硬件)->os->应用软件 二.网络通信原理 2.1 互联网的本质就是一系列的 阅读全文
posted @ 2017-11-26 12:24 ninxin18 阅读(576) 评论(0) 推荐(0)
摘要:1.事件驱动模型 上一篇写的协程仅仅是切换,本身不能实现并发,什么时候切换也不知道 那么什么时候切回去呢?怎么确定IO操作完了?通过回调函数 对于事件驱动型程序模型,它的流程大致如下: 开始 >初始化 >等待 事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时 阅读全文
posted @ 2017-11-25 23:14 ninxin18 阅读(376) 评论(0) 推荐(0)
摘要:1.socketserver模块和类 socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码) 这个模块封装了socket编程所需要的各种各样的类,现在可以使用类来编写应用程序。 因为以面向对象的方式处理事务有助于组织数据,以及逻辑性地将功能放在 阅读全文
posted @ 2017-11-25 20:46 ninxin18 阅读(2514) 评论(0) 推荐(0)
摘要:1 socket 插座?呵呵,想多了,翻译过来意思是套接字! A network socket is an internal endpoint for sending or receiving data at a single node in a computer network. Concrete 阅读全文
posted @ 2017-11-25 17:14 ninxin18 阅读(1392) 评论(0) 推荐(0)
摘要:一、一些基本概念: 协程(Coroutine),又称微线程,纤程,一种用户级的轻量级线程。 栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈 阅读全文
posted @ 2017-11-25 12:13 ninxin18 阅读(426) 评论(0) 推荐(0)
摘要:对于爬虫,python进行并发抓取的实现方式主要有以下几种:进程,线程,协程。 性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢。 一 多进程执行 可以实现并发,但是,请求发送出去后和返回之前,中间时期进程空闲 编写方式:1- 多进程直接返回处理 1 阅读全文
posted @ 2017-11-25 10:42 ninxin18 阅读(1407) 评论(1) 推荐(0)
摘要:一 多进程编程 Python实现多进程的方式有两种:一种方法是os模块中的fork方法,另一种是使用multiprocessing模块。 前者仅适用于LINUX/UNIX操作系统,对Windows不支持,后者则是跨平台的实现方式。 第一种方式:使用os模块中的fork方式实现多进程 import o 阅读全文
posted @ 2017-11-24 20:24 ninxin18 阅读(3093) 评论(0) 推荐(1)
摘要:一.Python中的上下文管理器(contextlib模块) 上下文管理器的任务是:代码块执行前准备,代码块执行后收拾 1、如何使用上下文管理器: 如何打开一个文件,并写入"hello world" filename="my.txt" mode="w" f=open(filename,mode) f 阅读全文
posted @ 2017-11-24 17:32 ninxin18 阅读(391) 评论(0) 推荐(0)
摘要:1.IO编程 IO(input/output)。凡是用到数据交换的地方,都会涉及io编程,例如磁盘,网络的数据传输。在IO编程中,stream(流)是一种重要的概念,分为输入流(input stream)和输出流(output stream)。可以把流季节为一个水管,数据相当于水管中的水,但是只能单 阅读全文
posted @ 2017-11-24 15:13 ninxin18 阅读(2654) 评论(0) 推荐(0)
摘要:1.冒泡排序(英语:Bubble Sort) 它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较 阅读全文
posted @ 2017-11-24 10:20 ninxin18 阅读(360) 评论(0) 推荐(0)
摘要:ITIL:Information Technology Infrastructure Library 信息技术基础架构库,主要适用于IT服务管理(ITSM)。ITIL为企业的IT服务管理实践提供了一个客观、严谨、可量化的标准和规范。 CMDB(Configuration Management Dat 阅读全文
posted @ 2017-11-22 20:51 ninxin18 阅读(1436) 评论(0) 推荐(0)
摘要:1.Twisted是用Python实现的基于事件驱动的网络引擎框架。 事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。另外两种常见的编程范式是(单线程)同步以及多线程编程。 from twisted.intern 阅读全文
posted @ 2017-11-19 20:03 ninxin18 阅读(2060) 评论(0) 推荐(0)
摘要:Scrapy不是一个函数功能库,而是一个爬虫框架。爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。 1.scrapy爬虫框架结构 数据流向步骤1: 1 Engine从Spider处获得爬取请求(Request)2 Engine将爬取请求转发给S 阅读全文
posted @ 2017-11-19 18:54 ninxin18 阅读(564) 评论(0) 推荐(0)
摘要:一:Requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. 1.安装 pip install requests 安装小测 >>> import requests >>> 阅读全文
posted @ 2017-11-17 11:02 ninxin18 阅读(531) 评论(0) 推荐(0)
摘要:1.centos安装rabbitmq 官网下载或者yum list |grep rabbitmq搜索安装,官网是最新的版本 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.14/rabbitmq-server-3.6.14-1.e 阅读全文
posted @ 2017-11-16 18:41 ninxin18 阅读(685) 评论(0) 推荐(0)