# 写好Python之函数## 避免使用可变对象作为参数德默认值当Python解释器对函数定义时,通过默认参数表达式来判断他们的值。该表达式仅发生一次。调用该函数不会触发其他的参数表达式值。由于计算的值用于所有函数调用序列,使用可变对象作为默认值会发生一些未期待的结果。可变对象意味值可以直接进行修改...
分类:
编程语言 时间:
2014-06-18 21:10:47
阅读次数:
206
比较中文是否相等:if str1.decode("GB2312").encode("utf-8") ==str2.decode("GB2312").encode("utf-8"): print "=="注: decode中时str1 str2使用的中文编码方式, encode统一用utf-8形式比....
分类:
编程语言 时间:
2014-06-18 19:26:41
阅读次数:
384
# 使用Cython为Python写扩展1:初识CythonCython使为Python写C扩展就如同写Python代码一样简单。广泛用于数学软件包,SAGE公司,作为执行快速,可扩展的运算。它提供了安全和可维护的方法通过自动生成所需代码来构建原生Python模块。我们经常会使用Cython将C/C...
分类:
编程语言 时间:
2014-06-18 17:48:59
阅读次数:
382
1.PyListObject对象 --> 变长可变对象,可看作vector
typedef struct{
PyObject_VAR_HEAD //其中的ob_size表示实际被使用的内存的数量
PyObject **ob_item;//ob_item为指向元素列表的指针,实际上,Python中的list[0]就是ob_item[0]
int allocated;//当前列表中可容纳的元素的总数
}
PyList_Type 对象 --> PyListObject的类型对象
ty...
分类:
编程语言 时间:
2014-06-16 22:48:55
阅读次数:
300
1.python的执行过程
1)对python源代码进行编译,产生字节码
2)将编译结果交给python虚拟机,由虚拟机按照顺序一条一条地执行字节码,产生执行结果
图7-1
2.Python编译器的编译结果——PyCodeObject对象
Python编译器的编译结果中包含了字符串、常量值、字节码等在源代码中出现的一切有用的静态信息。
在Python运行期间,这些静态信息被PyCodeObject对象中
在Python运行结束后,这些信息会被存储在pyc文件中
PyCodeObject对象和pyc文件是...
分类:
编程语言 时间:
2014-06-16 22:23:17
阅读次数:
228
1.PyDictObject对象 --> C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN)
PyDictObject采用了hash表,时间复杂度是O(1)
typedef struct{
Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要重新计算一遍hash值
PyObject *me_key;
PyObject *me_value;
}PyDictEntry;
将(key,value)对称为entry,它可以在3种状态...
分类:
编程语言 时间:
2014-06-16 21:22:45
阅读次数:
272
一.Apache服务器的用途:Apache是一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中.Apacheweb服务器软件拥有以下特性..
分类:
其他好文 时间:
2014-06-16 17:06:51
阅读次数:
321
升级了mac操作系统,安装python的python-ldap,报错Modules/LDAPObject.c:18:10:fatalerror:‘sasl.h‘filenotfound#include<sasl.h>^1errorgenerated.error:command‘cc‘failedwithexitstatus1----------------------------------------Cleaningup...Command/usr/bin/python..
分类:
编程语言 时间:
2014-06-16 16:21:35
阅读次数:
758