1.编译nginx在网上买了一本《实战nginx-取代Apache的高性能服务器》,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的。由于需要支持https和rewrite,所以除了nginx的源码之外,又下载了openssl-0.9.8r.tar.gz和pcre-8.12.tar.gz,把他们和nginx-1.0.4.tar.gz放到同一个目录。为了方便编译,笔者写了一个脚本,代码如下:#!/bin/bash#================
系统 2019-09-27 17:38:47 1892
myPhoneBook2.py#!/usr/bin/python#-*-coding:utf-8-*-importreclassPhoneBook(object):'''这是一个电话簿脚本。该脚本能够实现AddContact:添加联系人信息ShowContact:查找姓名显示联系人SaveContacts:存储联系人到TXT文档(存储格式――姓名:号码/号码)LoadContacts:从txt文档中载入联系人'''def__init__(self):sel
系统 2019-09-27 17:38:30 1892
从有道词典网页获取某单词的中文解释。importreimporturllibword=raw_input('inputaword\n')url='http://dict.youdao.com/search?q=%s'%wordcontent=urllib.urlopen(url)pattern=re.compile("",re.DOTALL)result=pattern.search(content.read()).group()pattern2=re.c
系统 2019-09-27 17:38:02 1892
封装面向对象三大特性:继承封装多态隐藏对象的属性和实现细节,仅对外提供公共访问方法广义上的封装:把方法和变量都封装在类中狭义上的封装:在类的外部干脆不能调用了优点将变化隔离便于使用提高复用性提高安全性封装原则:将不需要对外提供的内容隐藏起来把属性都隐藏,提供公共方法对齐访问私有变量和私有方法在python中用双下划线开头的方式将属性隐藏起来(设置成私有的)代码实例#其实这仅仅这是一种变形操作#类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的
系统 2019-09-27 17:56:45 1891
列表(list)、元组(tuple)、集(set)、数组(array)的相互转换1.转换成list:list();2.转换成tuple:tuple()3.转换成set:set()#转换成set后,重复数据将会被删除,具体见https://blog.csdn.net/Darren1921/article/details/936315094.转换成array:array()先来看一下这四种类型的输出情况:实例1b=tuple("161561")c=list("
系统 2019-09-27 17:55:28 1891
如下所示:#文件内容lisilock=open("lock_info.txt","r+",encoding="utf-8")lock_line=lock.readline()lock_list=lock_line.split(",")print(lock_list)y=lock_line.encode('utf-8').decode('utf-8-sig')print(y)#打印结果如下['\ufefflisi']lisi以上这篇python字符串转列表l
系统 2019-09-27 17:55:03 1891
该代码主要是基于python实现判断指定文件夹下是否存在指定后缀的文件。代码如下:importosYour_Dir='你的文件夹/'Files=os.listdir(Your_Dir)forkinrange(len(Files)):#提取文件夹内所有文件的后缀Files[k]=os.path.splitext(Files[k])[1]Str2=['.wav','.mp3','.mp4']iflen(list(set(Str2).intersection(s
系统 2019-09-27 17:54:47 1891
前言今天我们再说一下pytest框架和unittest框架相同的fixture的使用,了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearDown方法,那么在pytest框架中同样存在类似的方法,今天我们就来具体说明。先附上官方文档的一段说明1.每个级别的setup/teardown都可以多次复用2.如果相应的初始化函数执行失败或者被跳过则不会执行teardown方法3.在pytest4.2之前,xu
系统 2019-09-27 17:54:40 1891
定义通常,一个descriptor是具有“绑定行为”的对象属性。所绑定行为可通过descriptor协议被自定义的__get__(),__set__()和__delete__()方法重写。如果一个对象的上述三个方法任意一个被重写,则就可被称为descriptor。属性的默认操作是从对象字典中获取、设置和删除一个属性。例如,a.x有一个查找链,先a.__dict__['x'],若没有则type(a).__dict__['x'],若没有增往上查找父类直到元类。
系统 2019-09-27 17:53:41 1891
Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象importQueueq=Queue.Queue(maxsize=10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。将一个值放入队列中q.put(10)调用队列对
系统 2019-09-27 17:53:36 1891
python入门之语句,包括if语句、while语句、for语句,供python初学者参考。//if语句例子name='peirong';ifname=='peirong':print'thisispeirong';elifname=='maojun':print'thisismaojun';else:print'others';//while语句i=0;a=range(10);whilei
系统 2019-09-27 17:52:55 1891
我想使用python的第三方库,但是我的IDE给我一个错误代码:D:\untitled\venv\Scripts\python.exe"D:/pycode/venv/sxsxsxsxs.py"Traceback(mostrecentcalllast):File"D:\untitled\venv\lib\site-packages\urllib3\connectionpool.py",line597,inurlopenself._prepare_proxy(
系统 2019-09-27 17:52:39 1891
作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介绍argparse的文章中,我们全面了解了argparse的能力,相信不少小伙伴们都已经摩拳擦掌,想要打造一个属于自己的命令行工具。本文将以我们日常工作中最常见的git命令为例,讲解如何使用argparse库来实现一个真正可用的命令行程序。本系列文章默认
系统 2019-09-27 17:52:35 1891
建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会
系统 2019-09-27 17:52:26 1891
SymPy是符号数学的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展#coding:utf-8'''函数极限'''importsympysympy.init_printing()fromsympyimportI,pi,ooimportnumpyasnpx=sympy.Symbol('x')expr=sympy.sin(x)/xresult=sympy.limit(expr,x,0)print('limit:',r
系统 2019-09-27 17:52:24 1891