- 军军小站|张军博客
搜索到与相关的文章
Python

Python Threading 线程/互斥锁/死锁/GIL锁

导入线程包importthreading准备函数线程,传参数t1=threading.Thread(target=func,args=(args,))类继承线程,创建线程对象classMyThread(threading.Thread)defrun(self):passif__name__=="__main__":t=MyThread()t.start()线程共享全面变量,但在共享全局变量时会出现数据错误问题使用threading模块中的Lock类,添加互

系统 2019-09-27 17:47:40 1827

Python

Python:logging 的巧妙设计

引言logging的基本用法网上很多,这里就不介绍了。在引入正文之前,先来看一个需求:假设需要将某功能封装成类库供他人使用,如何处理类库中的日志?数年前在一个C#开发的项目中,我用了这样的方法:定义一个logging基类,所有需要用到日志的类都继承这个基类,这个基类中定义一个LogHandler事件,该事件用于实现具体的记录日志动作,同时可以通过将类A的LogHandler委托挂到类B的LogHandler上,实现将两个类的日志信息添加到一起。自从看了py

系统 2019-09-27 17:47:37 1827

Python

python使用in操作符时元组和数组的区别分析

在python中可以使用in符号判断指定的元素是否存在于列表中,但我发现元组和数组存在区别,下面是详细实验结果。>>>'jb51.net'in['haotu.net','jb51.net']True>>>'jb51.net'in('haotu.net','jb51.net')True>>>'jb51.net'in['jb51.net/codes','haotu.net']False>>>'jb51.net'in('jb51.net/codes','haot

系统 2019-09-27 17:47:15 1827

Python

Python的Django中django-userena组件的简单使用教程

利用twitter/bootstrap,项目的基础模板算是顺利搞定。接下来开始处理用户中心。用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前,用户的注册管理我一直使用django-registration。只是这个APP有些不思进取,09年发布了0.8alpha版后就一直没什么动静。这次决定尝试另外一个用户模块组件django-userena。相比django-registration,django-userena的功能要完善的多。除基础的登陆注

系统 2019-09-27 17:46:12 1827

Python

在SAE上部署Python的Django框架的一些问题汇总

花了些工夫将碎片网部署到了SAE,中途遇到各类问题。感觉SAE看上去很美,实际上却并不是太成熟(至少python版如此)。下面记录下我遇到的一些主要问题以及解决方法。django版本问题Django1.4都即将发布了,SAE平台自带的SAE版本依旧为1.2x。为使用django1.3版本,你需上传自己的django。具体做法可参考SAE手册中的runtime.html#virtualenv日志模块出错最先遇到的是日至模块的问题。错误显示AdminEmail

系统 2019-09-27 17:46:12 1827

Python

【python】 一文弄懂浅拷贝与深拷贝

一、可变对象与非可变对象想要理解浅拷贝与深拷贝就必须得先明白可变对象与非可变对象。可变对象有:list,dict,set不可变对象有:int,float,bool,str,tuple。两者区别:对于可变对象,其值改变是在原地址上操作,不会创建新的内存地址。对于不可变对象其值改变是直接创建新的内存地址。二、赋值操作符‘=’表示对象的引用。python里面的赋值操作符‘=’实际上是对象的引用,其并没有进行复制操作。如果如果赋值操作符右边的操作数是字面值,比如字

系统 2019-09-27 17:46:11 1827

Python

python3编写C/S网络程序实例教程

本文以实例形式讲述了python3编写C/S网络程序的实现方法。具体方法如下:本文所述实例是根据wingIDE的提示编写的一个C/S小程序,具体代码如下:client端myclient.py代码如下:#!/bin/envpython#-*-coding:gb18030-*-#importsocketimporttimei=1whilei<10:address=("127.0.0.1",3138)s=socket.socket(socket.AF_INET,

系统 2019-09-27 17:46:04 1827

Python

对于Python装饰器使用的一些建议

装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验,Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:@function_wrapperdeffunction():pass@实际上是python2.4才提出的语法糖,针对python2.4以前的版本有另一种等价的实现:deffunction():passfunction=func

系统 2019-09-27 17:45:57 1827

Python

Python3中urlencode和urldecode的用法详解

在Python3中,将中文进行urlencode编码使用函数urllib.parse.quote(string,safe='/',encoding=None,errors=None)而将编码后的字符串转为中文,则使用urllib.parse.unquote(string,encoding='utf-8',errors='replace')示例代码如下:test="微信公众账号比特量化"print(test)new=urllib.parse.quote(te

系统 2019-09-27 17:45:54 1827

Python

初步认识Python中的列表与位运算符

Python列表List(列表)是Python中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。列表用[]标识。是python最通用的复合数据类型。看这段代码就明白。列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:#!/usr/

系统 2019-09-27 17:38:44 1827