
Python
文章平均质量分 69
tycoon1988
这个作者很懒,什么都没留下…
展开
-
ython使用struct处理二进制
http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html原创 2014-08-25 10:33:27 · 431 阅读 · 0 评论 -
python的日志logging模块使用总结
1.简单的将日志打印到屏幕import logginglogging.debug('This is debug message')logging.info('This is info message')logging.warning('This is warning message')屏幕上打印:WARNING:root:This is warning message默认原创 2014-08-28 09:31:36 · 423 阅读 · 0 评论 -
抛异常找程序执行流程
Traceback (most recent call last): File "./tcp_server.py", line 139, in unit.start() File "/data/dreamliang/mySvn/sdn_proj/branches/oss/common/poller_timer_unit.py", line 23, in start原创 2014-08-28 14:49:33 · 1614 阅读 · 0 评论 -
Python 代码调试技巧
http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/使用 pdb 进行调试pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。表 1原创 2014-08-28 09:48:53 · 463 阅读 · 0 评论 -
traceback.print_stack(file=sys.stdout)与traceback.extract_stack()
def get_cur_info(): """ print sys._getframe().f_code.co_filename #当前文件名,可以通过__file__获得 print sys._getframe(0).f_code.co_name #当前函数名 print sys._getframe(1).f_code.co_name #调用原创 2014-08-28 12:16:11 · 1459 阅读 · 0 评论 -
traceback.print_stack(file=sys.stdout)找程序流程
def do_event_in(self, buf): traceback.print_stack(file=sys.stdout) s = traceback.extract_stack() print '%s Invoked me!'%s[-2][2] log_debug('server in %s' % buf)原创 2014-08-28 14:58:08 · 1076 阅读 · 0 评论 -
python 小知识点 "==" 与 "is"的区别
python有个特点是作用域用冒号表示,不是大括弧,所以你看到很多语句比如if else for while后面都有一个冒号。Python 2 has 31 keywords: and del from not while as elif global or with原创 2014-08-15 18:27:04 · 328 阅读 · 0 评论 -
动态地改变Python搜索路径
sys.path.insert(0, os.path.normpath(os.path.join(os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__))), './..')))原创 2014-09-23 19:09:30 · 2110 阅读 · 0 评论 -
详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果
详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果http://www.crifan.com/tutorial_python_indent/原创 2014-08-18 20:21:21 · 1689 阅读 · 0 评论 -
Python中类的特殊方法
名称 说明---------------------------------------------------------__init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用。__del__(self) 恰好在对象要被删除之前调用。__str__(self) 在我们对对原创 2014-08-27 09:33:21 · 798 阅读 · 0 评论 -
Python深复制浅复制or深拷贝浅拷贝
Python深复制浅复制or深拷贝浅拷贝简单点说1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象用一个简单的例子说明如下:>>>import copy >>>a = [1, 2, 3, 4, ['a', 'b', 'c']] >>> b = a >>> c = copy.copy(a) >>> d = copy原创 2014-08-26 18:10:15 · 508 阅读 · 0 评论 -
Python 模块学习 logging(2)
一、模块级函数除了上面描述的类,有许多模块级功能。1、logging.getLogger([name])见上小节2、logging.debug(msg[,*args[,*kwargs]])在 root logger 上记录消息以level DEBUG;msg:表示消息格式字符串。args:作用于msg,是使用字符串格式操作符(注意,这意味着您可以使用关键字的格式字符原创 2014-08-25 09:47:04 · 397 阅读 · 0 评论 -
python getattr()
例子:#!/ usr/bin/ python#-*- conding utf-8 -*-class Tests(object): #定义类 aaa = '10' #定义变量 def test(self): #定义类的方法test b = 20 return b原创 2014-08-13 20:12:24 · 485 阅读 · 0 评论 -
Python 元组(Tuple)操作详解
Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。在来看一个“可变的”tuple:复制代码 代码如下:>>> t = ('a', 'b', ['A', 'B'])>>> t[2][0] = 'X'>>> t[2][1] = 'Y'>>> t('a', 'b', ['X', 'Y'])这个tuple定义的时候原创 2014-08-25 11:53:58 · 1606 阅读 · 0 评论 -
Python之isinstance
isinstanceisinstance(object, classinfo) 判断实例是否是这个类或者object是变量classinfo 是类型(tuple,dict,int,float)判断变量是否是这个类型 class objA: pass A = objA() B = 'a','v' C = 'a string' print isinstance(原创 2014-08-12 15:45:21 · 337 阅读 · 0 评论 -
python 循环遍历字典元素
一个简单的for语句就能循环字典的所有键,就像处理序列一样:In [1]: d = {'x':1, 'y':2, 'z':3}In [2]: for key in d: ...: print key, 'corresponds to', d[key] ...: y corresponds to 2x corresponds to 1z correspon原创 2014-08-13 20:17:18 · 699 阅读 · 0 评论 -
Python id() 函数
在大多数高级语言当中,对参数的传递方式这个问题的理解一直是个难点和重点,因为它理解起来并不是那么直观明了,但是不理解的话在编写程序的时候又极其容易出错。下面我们来探讨一下Python中的函数参数的传递问题。 首先在讨论这个问题之前,我们需要明确一点就是在Python中一切皆对象,变量中存放的是对象的引用。这个确实有点难以理解,“一切皆对象”?对,在Python中确实是这样,包括我们之前经常用原创 2014-08-26 17:03:44 · 25874 阅读 · 6 评论 -
Python循环中的else语句
绝大部分编程语言中都有条件判断语句,比如 if … else ,在大部语言中,else 一般只在条件判断语句中出现,与 if 语句配套出现,不过在 Python 中,else 除了能与 if 这样的条件判断一起出现外,还能出现在 for、while 这样的循环语句中。我们来看一个例子:s = ["a111", "b222", "c333", "d444", "e555"]fo原创 2014-08-26 19:37:44 · 793 阅读 · 0 评论 -
Python:and和or的特殊性质
在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样。但是它们并不返回布尔值,而是返回它们实际进行比较的值之一。(类似C++里面的&&和||的短路求值)( 在布尔环境中,0、''、[]、()、{}、None为假;其它任何东西都为真。但是可以在类中定义特定的方法使得类实例的演算值为假。)and实例:原创 2014-08-26 15:08:40 · 467 阅读 · 0 评论 -
Python字典 (dictionary)
字典dict,是Python唯一的标准mapping类型,也是内置在Python解释器中的。mapping object把一个可哈希的值(hashable value)映射到一个任意的object上。什么是可哈希的一个object是可哈希的(hashable), 是指这个object在其生存期内有一个不变的哈希值(hash value),即__hash__()方法返回的值。所有不可原创 2014-09-01 18:07:39 · 365 阅读 · 0 评论 -
Python执行系统命令的方法
Python中执行系统命令常见方法有两种:两者均需 import os(1) os.system# 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息system(command) -> exit_statusExecute the command (a string) in a subshell.# 如果再命令行下执行,结果直接打原创 2014-09-02 09:33:29 · 533 阅读 · 0 评论 -
Python中执行系统命令常见方法有两种:
Python中执行系统命令常见方法有两种: http://www.cnblogs.com/xuxm2007/archive/2011/01/17/1937220.html两者均需 import os(1) os.system# 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息system(command) -> exit_status原创 2014-09-02 09:34:27 · 442 阅读 · 0 评论 -
A better iterable class
http://excess.org/article/2013/02/itergen1/原创 2014-10-10 16:41:09 · 383 阅读 · 0 评论 -
戏说WSGI(Python Web服务网关接口)
WSGI是马里奥在探索管道的时候发现的一种连接件,它非常简单,入口处提供一个start_response,用于回流(回调,callback),入口会连接到出口的一个函数,并传递environ字典和start_response作为参数;而出口处的函数先是调用start_response并传递status和header,然后再返回content。由于这段心法有些拗口,马里奥演示了唯一的招式,并声明其实原创 2014-10-09 20:57:26 · 488 阅读 · 0 评论 -
Python 迭代器 & __iter__方法
迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有点拗口,实际上要想让一个迭代器工作,至少要实现__iter__方法和next方法。很多时候使用迭代器完成的工作使用列表也可以完成,但是如果有很多值列表就会占用太多的内存,而且使用迭代器也让我们的程序更加通用、优雅、pythonic。原创 2014-10-10 15:04:46 · 2115 阅读 · 0 评论 -
Python中globals和locals的区别
Python的两个内置函数,locals 和globals,它们提供了基于字典的访问局部和全局变量的方式。 1、locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。见下图上面的图就可以看出了,对locals()中增加了一个b变量。2、locals和globals的返回不同locals(...) l原创 2014-10-10 10:52:23 · 1436 阅读 · 0 评论 -
yield与return的区别
生成器(generator)的作用是一次产生一个数据项,并把数据项输出,generator函数可以用在for循环中遍历.generator函数定义:def 函数名(参数): ... yield 表达式 generator函数的定义和普通函数的定义没什么区别,只要在函数体内使用yield生成数据项即可.generator函数可以被for循环遍历,并原创 2014-10-10 16:23:24 · 1085 阅读 · 0 评论 -
Python多继承顺序
class A(object): def caller(self): print 'A caller' self.called() def called(self): print 'A called'class B(object): def called(self): print 'B ca原创 2014-10-11 10:24:26 · 780 阅读 · 0 评论 -
python中的generator解读
http://shmilyaw-hotmail-com.iteye.com/blog/1476181原创 2014-10-11 20:29:03 · 475 阅读 · 0 评论 -
条件变量 condition 在 python 多线程编程中的应用
在用python的threading.Thread编写多线程程序时,最简单的就是是用锁,为使线程之间保持同步,可以使用threading.Condition() 条件变量思路:1.分析哪一块空间需要多线程读写,抽象出一个共享空间类,对共享空间设置读方法(get)和写方法(set)2.为使读线程和写线程同步,可以用threading.Condition()产生一个条件,同一个条件有w原创 2014-10-14 15:31:05 · 1452 阅读 · 0 评论 -
Python 之 __new__() 方法与实例化
__new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将类的实例化,而在 __init__() 启动之前,__new__() 决定是否要使用该 __init__() 方法,因为__new__() 可以调用其他类的构造方法或者直接返回别的对象来作为本类的实例。 如果将类比喻为工厂,那么_原创 2014-10-09 12:05:30 · 474 阅读 · 0 评论 -
python 单例 decorate_init
# -*- coding: utf-8 -*-import threadingclass Singleton(object): ''' 实现单件模式的基类, 好像就是从Python Cookbook扣来的吧ww ''' objs = {} objs_locker = threading.Lock() def __new__(cls转载 2014-10-09 14:39:06 · 487 阅读 · 0 评论 -
>/dev/null等含义
Linux Shell 环境中支持输入输出重定向,用符号来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,原创 2014-09-02 10:01:18 · 607 阅读 · 0 评论 -
装饰带有参数的方法
def target(x): print('this is target %s'%x)def decorator(func,x): func(x) print('this is decorator %s'%x)decorator(target,'!')等同于:def decorator(func): def restructure(x):原创 2014-10-09 16:12:45 · 352 阅读 · 0 评论 -
装饰器
69 class CItem(object): 70 def __init__(self): 71 setattr(self,'__delxx__',self.fun(self.__delxx__)) 72 @staticmethod 73 def fun(fn): 74 print 'in fun' 75原创 2014-10-09 16:11:16 · 393 阅读 · 0 评论 -
python Decorator装饰器用法一******************
python装饰器有两种类型,一种是函数装饰器,另外一种是类装饰器。函数装饰器基本用法如下:def decorator(f): print("Enter decorator") return f;@decoratordef Function(arg): print "Enter Function,arg=",argFunction(1)Function(10原创 2014-10-09 16:54:55 · 452 阅读 · 0 评论 -
python __init__ __new__ __call__
__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身__init__(self, *args, **kwargs) 创建完对象后调用,对当前对象的实例的一些初始化,无返回值,即在调用__new__之后,根据返回的实例初始化;注意,这里的第一个参数是self即对象本身【注意和new的区别】__ca转载 2014-10-09 11:56:44 · 517 阅读 · 0 评论 -
python单例模式
234__new__()在__init__()之前被调用,用于生成实例对象。利用这个方法和类的属性的特点可以实现设计模式的单例模式。单例模式是指创建唯一对象,单例模式设计的类只能实例实例化1个对象。转载 2014-10-09 12:12:24 · 474 阅读 · 0 评论 -
Python和Singleton (单件)模式
知道的一种在 python 中 Singleton mode 的实现如下:class Foo: passdef instance(): global inst try: inst except: inst = Foo () return inst该实现的优点就是简单和直观原创 2014-10-09 14:37:58 · 601 阅读 · 0 评论 -
关于python多线程编程中join()和setDaemon()的一点儿探究
#!/usr/bin/env pythonimport threadingimport timeclass MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name=name原创 2014-09-30 09:52:52 · 514 阅读 · 0 评论