# 写好Python之函数## 避免使用可变对象作为参数德默认值当Python解释器对函数定义时,通过默认参数表达式来判断他们的值。该表达式仅发生一次。调用该函数不会触发其他的参数表达式值。由于计算的值用于所有函数调用序列,使用可变对象作为默认值会发生一些未期待的结果。可变对象意味值可以直接进行修改...
分类:
编程语言 时间:
2014-06-18 21:10:47
阅读次数:
206
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
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135",
return ["255.255.11.135", "255.255.111.35"].
(Order do...
分类:
其他好文 时间:
2014-06-16 19:24:42
阅读次数:
248
shell脚本编程之选择控制结构
程序开发语言,分为两种,一种是解释型语言,一种是编译型语言。解释型语言是解释语句,并且能根据流程控制机制让语句按需执行,解释一条语句就返回语句的结果,这种语言需要一个解释器,而linux中的bash就是这样的一个解释器,常见的解释型语言有perl,python,ruby,bash。编译型语言,首先需要编译源程序,并且能够将源程序转换为二进制格式,而后...
分类:
其他好文 时间:
2014-06-16 19:14:23
阅读次数:
325
一.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