# 写好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
一.Apache服务器的用途:Apache是一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中.Apacheweb服务器软件拥有以下特性..
分类:
其他好文 时间:
2014-06-16 17:06:51
阅读次数:
321
demo代码如下。欢迎指正与讨论。#include<iostream>
#include<queue>
#include<stack>
usingnamespacestd;
template<typenameT>
structBinaryNode{
Telem;
BinaryNode*left;
BinaryNode*right;
BinaryNode(Td,BinaryNode*l=NULL,BinaryNode*r=NUL..
分类:
其他好文 时间:
2014-06-16 16:35:05
阅读次数:
278
升级了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
/**
*1.在Java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。
*
*Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取
*或移除的元素。他们的优点是通过返回值..
分类:
其他好文 时间:
2014-06-16 15:01:35
阅读次数:
218