- 博客(84)
- 资源 (3)
- 收藏
- 关注
原创 Python is和==的区别
Python中的对象包含三要素:id、type、value。其中:id用来唯一标识一个对象,type标识对象的类型,value是对象的值。is判断的是a对象是否就是b对象,是通过id来判断的。==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。举个例子:>>> a = [1,2,3]>>> import copy>>> b = copy.copy(a)>
2016-07-11 14:34:50 979
原创 Python获取当前时间的前(后)N天,前(后)N周,前(后)N月
获取当前时间的前(后)N天def get_days_before_today(n=0): ''''' date format = "YYYY-MM-DD HH:MM:SS" ''' now = datetime.datetime.now() if(n<0): return datetime.datetime(now.year, now.month, now.day, now.ho
2016-07-11 11:00:40 9188
原创 Highstock+flask+mysql实现多线条动态刷新
server端:flask web服务器,接受请求返回数据from flask import Flask,render_template,requestfrom mysql import MySqlimport timeimport randomimport jsonapp = Flask(__name__)LAST_TIME_BUYER = NoneLAST_TIME_
2016-07-01 17:40:33 1587
原创 Highstock+flask实现多线条动态刷新
flask web端: 接受请求,返回数据,在这里返回的数据是随机数代码:from flask import Flask,render_template,requestimport timeimport randomimport jsonapp = Flask(__name__)@app.route('/')def index(): return re
2016-06-30 16:38:11 3474 2
原创 Python使用函数默认值实现函数静态变量的方法
有时候我们想将一个变量定义成静态变量,在Java中可以用static关键字来修饰它,但是如果是python呢,python中可没有static关键字,那么在函数中想要把一个变量定义为静态变量改怎么做呢?虽然python不支持静态变量,但我们可以通过函数的默认值来实现静态变量的功能。先看一段代码:def func(a, b=[]): b.append(a) print b
2016-06-04 20:41:08 3299
原创 Python闭包需要注意的问题
定义 python中的闭包从表现形式上定义为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure),也就是说内层函数引用了外层函数的变量然后返回内层函数的情况就称之为闭包。 闭包的特点是返回的函数还引用了外层函数的局部变量。所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。实例问题#
2016-05-23 08:11:18 2285
原创 Python之greenlet学习
greenlet官方文档:点击打开链接以下内容主要是理解官方文档而来.greenlet greenlet是python的并行处理的一个库。 python 有一个非常有名的库叫做 stackless ,用来做并发处理, 主要是弄了个叫做tasklet的微线程的东西, 而greenlet 跟stackless的最大区别是greenlet需要你自己来处理线程切换, 就是说,你需要自己指定
2016-05-22 20:23:03 8707
原创 设计模式之装饰器模式
装饰器模式 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为.使用//公共的接口public interface CommonInterface { public void action();}//被装饰的类pub
2016-05-21 11:08:49 897
原创 HTTP协议知识点总结
一、HTTP协议的主要特点 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连
2016-05-20 16:02:27 1895
原创 JAVA基础部分(三)
1、抽象类和接口抽象类 抽象方法必须用abstract关键字进行修饰,如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰. 抽象类就是为了继承而存在的,它和普通类一样可以通过拥有成员变量和方法. 抽象方法必须为public或protected,如果为private则不能被子类继承,默认为public. 抽象类不能用来创建
2016-05-20 11:05:08 753
原创 JAVA基础部分(二)
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Java有没有goto? java中的保留字,现在没有在java中使用。3、说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整
2016-05-20 09:51:40 531
原创 设计模式之桥接模式
概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用桥接模式。应用场景 现在有咖啡,按大小分可以分为中杯和大杯,按类型可以分为拿铁和摩卡,所以现在总共有四中咖啡,中杯拿铁,大杯拿铁,中杯摩卡,大杯摩卡,按照传统的做法会
2016-05-19 09:58:57 993
原创 设计模式之适配器模式
什么是适配器模式 在生活中我们经常会遇到接口不一致的场景,例如两个不同粗细的水管需要连接到一起,电器的工作电压和电线的电压不通.适配器模式将是一个类的接口转换成希望的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.适配器分为两种:类适配器对象适配器:适配器模式的特点让功能
2016-05-17 20:46:39 945
原创 设计模式之单例模式
什么是单例模式 单例模式保证一个类只有一个实例,并且自行实例化向整个系统提供这个实例。单例模式的特点 优点:由于只有一个对象,可以节省内存空间;只创建一个实例,避免频繁的创建销毁实例;避免对共享资源的多重占用;可以全局访问。 适用场景:需要频繁实例化然后销毁的对象;创建对象时耗时过多或者耗资源过多,但又经常用到的对象;
2016-05-17 19:23:41 994
原创 python函数式编程
什么是函数式编程(定义) 函数式编程是一种编程范式,其思想接近数学计算,也就是说一个函数的值取决于参数的值而不依赖其他的状态.为什么要函数式编程(优点)1. 代码简洁,开发快速函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。2. 接近自然语言,易于理解函数式编程的自由度很高,可以写出很接近自然语言的代码。3. 更方便的代码管理
2016-05-16 09:42:28 1846
原创 Python之赋值与深浅拷贝
赋值 在Python中,赋值语句是建立对象的引用,而不是复制对象,变量就像一个指针.例如:# coding:utf-8list_a = [1, 2, 3, ['a', 'b', 'c']]list_b = list_afor item in list_a: print(id(item))for item in list_b: print(id(item))
2016-05-15 08:50:13 2850
原创 Python多线程使用及线程同步
多线程使用 Python使用多线程有两种方式,函数式和用类来包装线程对象.线程模块 Python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。 thread 模块提供的其他方法:threading.currentThread(): 返回当前的线程变量。thre
2016-05-14 10:04:17 5655
原创 JAVA多线程之线程同步
为什么需要同步 JVM有一个main memory,而每个线程都有自己的working memory,一个线程对一个变量进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory.当多个线程同时操作一个变量时,就可能产生不可预知的结果,这就是线程安全问题. 当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一
2016-05-13 17:20:41 1481
原创 JAVA多线程之多线程的实现
java实现多线程有两种方式:继承Thread类并重写run方法;实现Runnable接口. Thread类是专门用来创建线程和对线程进行操作的类。当某个类继承了Thread类之后,该类就叫做一个线程类。 两种方法均需执行线程的start()方法为线程分配必须的系统资源、调度线程运行并执行线程的run()方法。 start()方法是启动线程的唯一的
2016-05-13 11:05:43 1843
原创 JAVA基础部分(一)
String、StringBuffer和StringBuilder的区别是什么?String为什么是不可变的?String是字符串常量,StringBuffer和StringBuilder是字符串变量;StringBuffer是线程安全的,因为它的方法都加了sychronized,而StringBuilder是非线程安全的;String不可变是因为在JDK中String类被声明为fin
2016-05-12 21:31:32 2010
原创 数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)
现在有两张表,计算机学院学生表和选课表,表的结构如图所示:StudentSCourse 为了更加直观的解释,先以上述两张表为基础执行相应的SQL语句,再进行解释。左连接(LEFT JOIN) SQL语句SELECT * FROM Student LEFT JOIN SCourse ON Student.SNumber = SCourse.SID
2016-05-12 21:03:10 5800
原创 python装饰器(decorator)
什么是装饰器(decorator) 简单来说,可以把装饰器理解为一个包装函数的函数,它一般将传入的函数或者是类做一定的处理,返回修改之后的对象.所以,我们能够在不修改原函数的基础上,在执行原函数前后执行别的代码.比较常用的场景有日志插入,事务处理等.装饰器 最简单的函数,返回两个数的和def calc_add(a, b): return a + bcalc_add(
2016-05-12 16:05:22 4972
原创 python数据结构之字符串查找两例
查找字符串中最长连续数字子串 问题描述 查找给定字符串中最长的数字字串,返回其起始下标,长度和字串.例如: input :abc12345cd123ef234567df output:15 6 234567'''查找给定字符串中最长的数字字串,返回其起始下标,长度和字串.例如:input :abc12345cd123ef234567dfoutput:15 6 23
2016-05-11 10:04:36 2615
转载 十个Python程序员易犯的错误
不管是在学习还是工作过程中,人都会犯错。虽然Python的语法简单、灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头。本文为大家分享了10大常见错误,需要的朋友可以参考下常见错误1:错误地将表达式作为函数的默认参数在Python中,我们可以为函数的某个参数设置默认值,使该参数成为可选参数。虽然这是一个很好的语言特性,但是当默认值是可变类型时,
2016-05-10 21:53:15 2916 1
转载 开发中常遇到的Python陷阱和注意点
避免可变对象作为默认参数在使用函数的过程中,经常会涉及默认参数。在Python中,当使用可变对象作为默认参数的时候,就可能产生非预期的结果。下面看一个例子:1234567def append_item(a = 1, b = []): b.append(a) pri
2016-05-10 21:45:46 2993
原创 Ubuntu14.04安装JDK和Tomcat
之前已经装过好几次了,但是每次需要再次安装又得重新搜教程,自己记录一下以免忘了.安装JDK 下载 官网下载:点击打开链接,我下载的文件名是jdk-8u66-linux-x64.tar.gz 解压安装 我打算安装到/opt/jvm/下 先解压,tar -zxvf jdk-8u66-linux-x64.tar.gz,得到jdk1.8.0_66 重命名再移到/opt/j
2016-05-10 14:10:11 3687
原创 python之urllib2使用总结
urllib2是什么 urllib2是python中用来打开url的一个模块.除此之外,python中还有一个功能类似的模块urllib,它们的区别是:urllib2可以接受一个Request类的实例来设置URL请求的headers,这可以帮助我们的代码伪装成浏览器,而urllib只可以接受urlurllib提供urlencode方法来encode发送的数据,而urlli
2016-05-09 21:16:36 3136
原创 Python之文件操作
文件读写操作 打开文件 file = open(fileName, mode),mode默认为"r" 例如file = ope("test.txt", "r").以读的方式打开文件.文件操作完毕记得关闭.file.close() 其中,mode可以有以下选择:"r" 以读方式打开,只能读文件.如果文件不存在则会发生异常"r+" 以读写方式打开
2016-05-09 14:46:00 3401
原创 python之PyMongo使用总结
PyMongo是什么 PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成.安装 环境:Ubuntu 14.04+python2.7+MongoDB 2.4 先去官网下载软件包,地址点击打开链接.解压缩后进入,使用python setup.py install 进行安装 或者用pip安装pip -m install
2016-05-09 10:56:57 26830
原创 python之pyQuery使用总结
什么是pyQuery 当我们使用爬虫抓取网页后,还需要对抓取的HTML内容进行处理以获得需要的信息.pyQuery是jQuery的python实现,可以用来解析HTML内容.安装 我的环境:Ubuntu 14.04+python2.7 命令:pip install pyquery使用 加载HTML内容 from pyquery import pyQue
2016-05-09 09:34:08 8163
原创 python基础---数据类型之间的转换
python数据类型 python有5个标准的数据类型:Numbers(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典)数字之间和数字与字符串之间的转换 int int函数能够:把符合数学格式的数字字符串转换成整型数字;把浮点型数字转换成整数,只是把数字取整,抹去小数部分.print i
2016-05-08 20:05:09 3752
原创 python生成随机数方法小结
在python中用于生成随机数的模块是random,在使用前需要importrandom.random:random.random():生成一个0-1之间的随机浮点数.例:import randomprint random.random()# 0.87594424128random.uniformrandom.uniform(a, b):生成[a,b]之间的浮点数.
2016-05-07 19:31:23 38011 4
原创 guestfish工具修改openstack官方ubuntu镜像默认用户的密码
上一篇博客说道如何在创建实例的时候通过脚本来修改openstack官方ubuntu镜像默认用户的密码:打开链接 这一篇博客分享一下如何使用guestfish这个工具来修改.安装guestfish 我的环境是ubuntu 14.04 安装:$ apt-get install libguestfs-tools 打开镜像:$ sudo guestfish
2016-04-27 15:54:18 6120
原创 脚本修改Openstack官方Ubuntu镜像默认用户的密码
Openstack官网提供了很多版本的Linux镜像,比正常下载的要小上不少,估计做了很多精简.用这些镜像来生成实例,官网只告诉了用户名,并未告知密码,而是希望我们通过密钥来登陆.那如果不想那么麻烦,就想通过用户名和密码在命令行下登陆改怎么办呢. 下载Ubuntu镜像 地址:http://uec-images.ubuntu.com/trusty/current/trusty-s
2016-04-27 14:01:00 7489
原创 Python 迭代器
1.迭代器 1.1介绍 访问一个列表或元组时很平常的做法是通过下标访问例如:lst = [1, 2, 3, 4, 5]for i in range(len(lst)): print lst[i] 但是除了这种方式,其实还有另外一种方式,使用迭代器:lst = [1, 2, 3, 4, 5]for value in lst: print value
2016-04-26 11:20:32 6306
原创 python WSGI+Paste Deployment+oslo.config综合运用
关于Paste Deployment介绍请看我之前的博客Python Paste Deployment关于oslo.config介绍请看我之前博客oslo.config关于WSGI介绍请看我之前博客WSGI接口在有了上面的基础后,不多说,直接上代码server.pyimport osimport commandsfrom paste.deploy import loadap
2016-04-23 09:43:06 3514
原创 WSGI接口
官方文档:WSGI什么是WSGI WSGI---Web Service Gateway Interface,网络服务网关接口.首先声明,它不是服务器,也不是python模块,它是一种规范,描述Web服务器和应用之间的交互.通俗来讲,它就是一条纽带,连接着Web服务器和应用.WSGI应用 WSGI应用是一个可调用(callable)对象,它可以是一个函数,
2016-04-23 09:21:58 4224
原创 openstack oslo.config配置解析模块
什么是oslo.config oslo.config是openstack解析命令行(CLI)或者配置文件(.conf)中配置信息的库.官网地址点击打开链接 安装: $ sudo pip install oslo.configcfg模块 每一个配置项都是一个Opt类或其子类例如:from oslo_config import cfgfrom oslo_co
2016-04-22 10:55:55 9121
原创 Python Paste Deployment
本文参照着官方文档编写,管网地址:点击打开链接什么是Paste Deployment Paste Deployment是用来发现和配置WSGI的系统.对于WSGI使用者来说,它提供了简单的方法(loadapp)通过配置文件来启动WSGI应用.对于WSGI的开发者来说,只需要给自己的应用提供一套简单的入口点即可.安装 $ sudo pip install PasteDep
2016-04-21 17:18:35 3909
原创 openstack nova-api启动流程
一、预备知识 nova-api服务启动过程比较简单,难点在于它用到的一些库不了解,建议先了解一下python paste.deploy,routes,webob这些这些模块。 paste.deploy 主要是通过解析/etc/nova/api-paste.ini,根据指定的name来加载wsgi app。 webob WebOb是
2016-04-20 14:53:18 5603
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人