
python
文章平均质量分 78
runner668
这个作者很懒,什么都没留下…
展开
-
python中下划线
在本文中,我将讨论以下五种下划线模式和命名约定,以及它们如何影响Python程序的行为:单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:__var__ 单下划线:_在文章结尾处,你可以找到一个简短的“速查表”,总结了五种不同的下划线命名约定及其含义,以及一个简短的视频教程,可让你亲身体验它们的行为。让我们马上开始!1. 单前导下划...转载 2019-05-27 11:09:30 · 317 阅读 · 0 评论 -
python中运用ctypes库实现c风格变量的定义和调用
ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。ctypes的官方文档在这里。1. ctypes基本数据类型映射表参数类型预先设定好,或者在调用函数时再把参数转成相应的c_***类型。ctypes的类型对应如下:ctypes typeC typePython Typec_charchar1-character stringc_wcharwch...原创 2018-05-16 18:07:15 · 2941 阅读 · 0 评论 -
Python 扩展技术总结
转载子:https://blog.youkuaiyun.com/u010786109/article/details/41825147 一般来说,所有能被整合或导入到其他Python脚本中的代码,都可以称为扩展。你可以用纯Python来写扩展,也可以用C/C++之类的编译型语言来写扩展,甚至可以用java,C都可以来写 python扩展。Python的一大特点是,扩展和解释器之间的交互方式域普通的Pytho...转载 2018-04-28 18:04:39 · 300 阅读 · 0 评论 -
使用cython编写python扩展
Cython使为Python写C扩展就如同写Python代码一样简单。广泛用于数学软件包,SAGE公司,作为执行快速,可扩展的运算。它提供了安全和可维护的方法通过自动生成所需代码来构建原生Python模块。我们经常会使用Cython将C/C++实现的系统绑定到Python中,这样我们就可以使用Python来处理高级别逻辑,原生模块来处理底层代码。关于示例代码http://git.oschina.n...转载 2018-04-28 18:03:42 · 1621 阅读 · 0 评论 -
Tornado RequestHandle可以重写的方法
一 :RequestHandler 一般我们继承tornado.web.RequestHandler 1,RequestHandler.initialize()一般用于初始化,第三个字典参数传入 class ProfileHandler(RequestHandler): def initialize(self, database): self.database = d...转载 2018-05-13 20:40:24 · 1434 阅读 · 0 评论 -
tornado连接mysql数据库与pymysql的简单操作
本人的python是3.5,由于3.0后用的是pymysql,就不能用tornado自带的torndb来进行简单的连接操作。Application这个类是初始化一些全局变量,按照道理说里边的self.db 也应该能够被其他类或者派生类调用的,但是db这个属性就是不行,无奈只好创建了一个全局的db句柄,然后在HouseHandler类中根据这个db初始化一个实例。当然要在Aplicat...原创 2018-05-13 20:09:30 · 11986 阅读 · 1 评论 -
python中name变量与functools模块wraps()装饰器函数
在python中__name__是个系统变量,代表执行中的函数或者模块的名字。而functools模块的wraps函数是一个装饰器,可以为函数添加额外的功能,比如登陆验证等,初次之外这个装饰器还有很多特性!functools.wraps 则可以将原函数对象的指定属性复制给包装函数对象, 默认有 __module__、__name__、__doc__,或者通过参数选择。代码如下:from funct...原创 2018-05-13 16:50:45 · 1167 阅读 · 0 评论 -
python数据结构
python自身的数据容器,如 列表,元组,字典等都是很好的工具,但是有时候我们需要特定的数据结构 如队列,二叉树等特定的数据结构,这些时候我们可以借助list,或者pathon语言特性来设计。一:列表的操作 在python中列表作为使用最多的容器,必须知道它的特性和常见的操作函数,首先来看列表的四种常见的插入操作并随后分析它的时间复杂度。def test1(): l ...原创 2018-05-18 21:37:16 · 214 阅读 · 0 评论 -
tornado编程技巧
一:参数配置写成字典的形式1 将Application的设置参数(目前只学习了debug)抽离为一个字典类型变量settings,并在构造Application对象时使用settings。当配置项比较多的时候,还可以直接写一个包。 相当于项目的配置文件!二:抽象出基类(继承)尝试抽象出BaseHandler基类,继承自RequestHandler,并在此基类中实现prepare(解析json数据...原创 2018-05-12 20:08:54 · 526 阅读 · 0 评论 -
tornado模板与静态资源
一:静态资源现在有一个预先写好的静态页面文件 (下载静态文件资源), 我们来看下如何用tornado提供静态文件。import tornado.webimport tornado.ioloopimport tornado.httpserverimport tornado.optionsimport jsonimport osfrom tornado.web import R...原创 2018-05-12 16:36:09 · 3685 阅读 · 0 评论 -
深入理解python的元类以及元类实现单例模式
转自:https://www.cnblogs.com/tkqasn/p/6524879.html一、理解类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:class ObjectCreator(object): pass...转载 2018-05-16 21:11:49 · 695 阅读 · 0 评论 -
python中类的多态-鸭子
python不支持多态,也不用支持多态,而是一种多态的语言。 鸭子类型(duck typing):是动态类型的一种风格,不是由继承特定的类或实现特定的接口,而是当前的方法和属性的集合决定,鸭子类型中关注的不是对象的类型本身,而是他如何使用。 这个概念的名字来源于James Whitcomb Riley提出的鸭子测试:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称...转载 2018-05-16 21:28:56 · 1379 阅读 · 0 评论 -
python多进程编程
推荐:https://blog.youkuaiyun.com/somezz/article/details/80963760Python 中的多线程之 GILGIL 本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。在一个 Python 的进程内,不仅有主线程或者由该主线程开启的其他线程,还有解释器开启...原创 2019-05-26 20:52:14 · 196 阅读 · 0 评论 -
python中*和**
一:用在参数传递Python中,(*)会把接收到的参数形成一个元组,而(**)则会把接收到的参数存入一个字典在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。比如定义一个函数,包含上述4种参数:def func(a, b, c=0, *a...原创 2019-05-21 20:02:22 · 6316 阅读 · 1 评论 -
Tornado源码剖析
转自:https://www.tuicool.com/articles/jmuYRfBTornado简介Tornado是Python语言写的Web服务器兼Web框架。Tornado速度快,每秒可处理数以千计的连接,得益于其非阻塞I/O及多路复用的应用。Tornado核心工作流程图1.Tornado核心流程图2.Tornado核心模块UMLTornado优势绝大多...转载 2018-10-03 15:41:08 · 1877 阅读 · 0 评论 -
深入理解tornado的ioloop
本文所剖析的tornado源码版本为4.4.2 ioloop是tornado的关键,是他的最底层。 ioloop就是对I/O多路复用的封装,它实现了一个单例,将这个单例保存在IOLoop._instance中 ioloop实现了Reactor模型,将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程/进程阻塞在多路复用器上;一旦有I/O事件到来或是准...转载 2018-10-03 15:26:59 · 1149 阅读 · 0 评论 -
python面向对象的特性
在网上看到了两篇讲的不错的帖子,在这里做了一个整理,感谢一下两位作者。https://www.cnblogs.com/lfpython/p/7346385.htmlhttps://www.cnblogs.com/wpcbk/p/8856828.html一、继承 面向对象中的继承就是继承的类直接拥有被继承类的属性而不需要在自己的类体中重新再写一遍,其中被继承的类叫做父类、...转载 2018-09-01 20:53:27 · 271 阅读 · 0 评论 -
python中删除特定字符串
现在有一个字符串,有一些不想要的单词和特殊字符import retext = 'wo,didi;wode,;wode'text0 = text.replace('didi', '')print(re.sub('[,;]', ' ', text0))先用替换后用子串可以得到自己想要的结果:wo wode wode python中字符串自带的split方法一次只能使用一个字符对字...转载 2018-07-16 16:43:43 · 58297 阅读 · 0 评论 -
python中下划线的使用
python中下划线最常见的是,作为字符用于命名变量。但是不同于a b c等字符,它有一些特殊的用法,有的是程序设计使然,有的是编程习惯约定俗成。python中下划线主要使用于一下四个场景表示最近输出结果表示没用的变量表示私有变量前后双下划线————类的魔术方法1.表示最近输出结果在python交互模式下,_可以表示一个特殊变量,指向最近输出的结果>>> a = 1>&g...转载 2018-07-08 16:45:47 · 836 阅读 · 0 评论 -
Diango总结
进行web开发时,需要跟踪大量的细节。除了显示HTML和处理表单输入外,还有其他的工作要做:1:处理cookie,会话和登录2:检测并显示错误3:在数据库中存储数据4:将网页设计与应用的应用的其他部分分离,让web设计人员无需打扰您就能进行网页设计。Django遵循 模型(数据)-视图-控制器的一种将数据和表示分离的设计模式 模型存储数据并提供操作数据的函数;视图(模板)是用...原创 2018-06-17 16:50:22 · 913 阅读 · 0 评论 -
python- socket通信 以16进制的数据进行传递与解析
struct.pack也就是将数据按照二进制的格式进行传输 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在。传递字符串时无需过多担心,但传递 int,char 之类的基本数据时,就需要一种机制将某些特定的结构体类型打包成二进制流的字符串,然后在进行网络传输,而接收端也可以通过某种机制...原创 2018-06-15 17:47:25 · 15603 阅读 · 0 评论 -
tcpsocket的粘包和分包的处理
转子:https://blog.youkuaiyun.com/yannanxiu/article/details/52096465概述在进行TCP Socket开发时,都需要处理数据包粘包和分包的情况。本文详细讲解解决该问题的步骤。使用的语言是Python。实际上解决该问题很简单,在应用层下,定义一个协议:消息头部+消息长度+消息正文即可。那什么是粘包和分包呢?关于分包和粘包粘包:发送方发送两个字符串”hel...转载 2018-06-15 15:58:53 · 1129 阅读 · 0 评论 -
python爬取上海期货交易所数据
一:爬虫的常规方法爬虫的常用套路是table-tr(行)-th/td(元素)'''Created on Feb 28, 2017@author: hcq908'''import csvimport os# import refrom urllib.request import urlopenfrom bs4 import BeautifulSoupif __name__ ...原创 2018-06-08 14:30:29 · 20473 阅读 · 1 评论 -
python实现桥接模式
桥接模式:就是两个类互补包含(引用),但是通过接口传递参数,可以实现调用不同的类,达到了解耦合的目的!#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = 'ming'"""大话设计模式设计模式——桥接模式桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化.程序实例:手机软件的分类...原创 2018-04-04 16:47:22 · 784 阅读 · 0 评论 -
单例模式
c++实现单例模式的方法是让类自身负责它的唯一实例!class Singleton{private: //声明一个指向自己的静态的类变量 static Singleton* instance; //临界区,防止多线程产生多个实例 static CRITICAL_SECTION m_Sec; //构造方法私有,防止外部用NEW来实例化它 Singleton(){}public: ...原创 2018-04-03 17:13:35 · 116 阅读 · 0 评论 -
装饰着模式
#!/user/bin/evn python#-*- coding:utf-8 -*-''' 大话设计模式 设计模式——装饰模式 装饰模式(Decorator Pattern):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 特点: 有效的把类的核心职责和装饰功能区分开,而且可以去除相关类中重复的装饰逻辑'''#定义对象接口class Pe...原创 2018-04-03 15:40:16 · 111 阅读 · 0 评论 -
迭代器生成器和yield单线程并发实现
迭代器是访问集合元素的一种方式。实现是next()方法# coding:utf-8a = iter([1,2,3])print(a)try: print(a.__next__()) print(a.__next__()) print(a.__next__()) print(a.__next__())except StopIteration: print ('遍历完毕'...原创 2018-03-28 11:33:54 · 425 阅读 · 0 评论 -
python对数组去重进行
#!/usr/bin/python# -*- coding: utf-8 -*-import sys array = []a = 1array.append(int(a))a =2array.append(int(a))###集合b = set(array)print(b)###列表c = list(b)print(c)###排序d = sorted(c)##打印for i in range(le...原创 2018-03-28 11:04:27 · 1956 阅读 · 0 评论 -
python实现策略模式
一:模式用途策略模式:他定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。不同的时间应用不同的业务规则就可以用这个模型。class CashSuper: def AcceptCash(self,money): return 0class CashNormal(CashSuper): def AcceptCash(...原创 2018-04-02 17:21:21 · 590 阅读 · 0 评论 -
python实现简单工厂模式和异常机制
一:简单实现#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ ='ming'class Operation(object): ''' 基类,用于接受用户输入 ''' def __init__(self,num1=0,num2=0): self.num1 =num1 s...原创 2018-04-02 16:50:32 · 232 阅读 · 0 评论 -
python类方法总结
首先,和定义函数的 def 一样, class 是定义类的关键字。紧接着的是类名,这个可以自定义,同样的,不能和python的内置关键字冲突。建议首字母大写,例如Myclass然后是一个括号,里面的参数是用于继承的,一般继承于 object,表示一个新式类。另外,你可能见过没有括号的写法,这是经典类的写法。class NewClass(object): passclass OldCla...原创 2018-04-02 11:38:01 · 177 阅读 · 0 评论 -
pytho网络爬虫
# encoding:utf8from urllib import requestfrom bs4 import BeautifulSoupimport pymysqlimport time#下载器def htmlDownload(url): req = request.Request(url); #返回文件类型的对象 req.add_header('User-A...原创 2018-03-08 16:59:55 · 537 阅读 · 0 评论 -
keras深度学习训练结果可视化
'''This script goes along the blog post"Building powerful image classification models using very little data"from blog.keras.io.It uses data that can be downloaded at:https://www.kaggle.com/c/dogs原创 2018-01-28 10:44:00 · 9355 阅读 · 0 评论 -
python实现二叉树的遍历
二叉树的遍历树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。深度优先遍历对于一颗二叉树,深度优先搜索(Dept原创 2018-01-26 16:04:26 · 332 阅读 · 0 评论 -
命令者模式
命令者模式:将请求封装成对象#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = 'Andy'"""大话设计模式设计模式——命令模式命令模式(Command Pattern):将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作."""# 命令类class Comman...原创 2018-04-04 17:27:34 · 197 阅读 · 0 评论 -
网易笔试安置路灯
算法思路:贪心算法 遍历路灯字符串,遇见“.”,就给计数器+1,然后往后挪三个位置。如果遇到“X”,就直接往后挪一个位置。 编程思路 路灯个数放入数组n中,路灯对应的字符串放入数组lantern中,要放路灯的个数放入lantern_count中。这三个数组是一一对应的。双重循环来遍历lantern中的字符串,如果遇到“.”,对应的lantern_count+=1,j+=3(挪三个位...原创 2018-04-04 21:52:27 · 309 阅读 · 0 评论 -
tornado向服务端发送数据和上传文件
RequestHandler.request 对象存储了关于请求的相关信息,具体属性有:method HTTP的请求方式,如GET或POST;host 被请求的主机名;uri 请求的完整资源标示,包括路径和查询字符串;path 请求的路径部分;query 请求的查询字符串部分;version 使用的HTTP版本;headers 请求的协议头,是类字典型的对象,支持关键字索引的方式获取特定协议头信息...原创 2018-05-12 11:11:42 · 4757 阅读 · 1 评论 -
python——numpy与pandas文件存取
NumPy是python的专用数组,底层是C语言实现的,节省内存,开发效率高。而Pandas则是一款功能强大的数据分析工具,是为处理表格数据而生的。一:numpy文件的存取 NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。一,tofile()和fromfile()t...原创 2018-05-18 10:58:44 · 5553 阅读 · 0 评论 -
python多路I/O复用模型
select、pool、epool都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就续或是写就绪),能够通知程序进行相应的读写操作。但select、pool、epool本质上都是同步IO,因为他们都需要在读写事件就绪后自己负责读写,也就是说这个读写的过程是阻塞的,而异步IO则不需要自己负责读写,异步IO的实现会负责把数据从内核拷贝到用...转载 2018-05-04 21:19:55 · 381 阅读 · 0 评论 -
python事件驱动与异步I/O
通常,我们写服务器处理模型的时候,有以下几种模型:每收到一个请求,创建一个新的进程,来处理该请求每收到一个请求,创建一个新的线程,来处理该请求每收到一个请求,放入一个时间列表,让主进程通过非阻塞I/O方式来处理请求以上几种方式各有优缺点:第一种方法中,由于创建新的进程开销比较大,会导致服务器性能比较差,但是实现比较简单第二种方式,由于要设计成线程的同步,有可能会棉铃死锁等问题。第三种方式中,在写应...转载 2018-05-04 21:08:47 · 2243 阅读 · 0 评论