python
风云来
这个作者很懒,什么都没留下…
展开
-
python 基本数据类型
Dictionary:定义了键和值之间的一对一关系。类似于Java中的HashTable. dict = {"a":"a", "b":"b"}. 通过dict["a"]来引用对应Key的值特性:不能有重复的Key,给一个存在的Key赋值会覆盖掉原来的值。 Dictionary是无序的。 Dictionary的Key对大小写敏感。 在单个Dictionary中可以有多种数据类型。转载 2013-05-02 18:14:26 · 803 阅读 · 0 评论 -
c++中使用python
C++中调用Python脚本的意义就是热加载,可以把它当成脚本形式的动态链接库,只要提供的函数接口是一致的。c++也有动态库,那么python的作用也就是不需要每次手动编译该文件,易于维护,不会当机。甚至可以让策划人员自己编辑python脚本(跟lua类似,现在比较多的是lua嵌入c++使用)。原创 2013-05-09 11:38:55 · 1443 阅读 · 0 评论 -
游戏服务器之长连接服务器(python)(2)
游戏服务器之长连接服务器实现tcp连接的数据异步收发。一个网络收发处理进程,一个服务器对象逻辑处理进程。两个进程之间使用管道通信。网络收发处理进程:(1)网络处理是由反应器的子线程来处理的。(2)从管道的一端读取数据,读取管道后和网络发送前,需要前处理连包和反序列化来检查包的完整性。这里还缺少合适的连包断包处理。(3)反应器的子线程接受网络数据再写到管道。服务器对象逻辑处理进程:(1)读取网络数据并反序列化的是在服务器对象进程的一个接受循环线程里处理。并派送到服务器对象的消息队列。(2)反应原创 2014-03-16 18:13:41 · 2158 阅读 · 0 评论 -
游戏服务器之长连接服务器(python)(1)
游戏服务器之长连接服务器实现tcp连接的数据异步收发。特点如下:(1)一个服务器进程含一个服务器对象(2)服务器对象包含被动连接工厂和主动连接工厂(3)两个工厂分别处理被动连接和主动连接(4)被动连接和主动连接的网络收发都在在reactor的网络线程池里处理(5)每个连接对应一个会话对象,接受的数据缓存在会话,在会话里反序列化和派送到具体的逻辑服务;会话发送数据时压入reactor网络线程池的队列里处理原创 2014-03-15 20:01:31 · 2804 阅读 · 0 评论 -
Twisted 之 reactor
在 Twisted中,有一个全局用于实现事件循环的对象为reactor。反应器具体的工作包括:定时任务、线程、建立网络连接、监听连接。原创 2013-05-04 23:56:28 · 4946 阅读 · 0 评论 -
swig-python使用和测试
转自:http://blog.csdn.net/king_on/article/details/80923991. SWIG介绍(来自于wiki)SWIG (Simplified Wrapper and Interface Generator) is anopen source software tool used to connectcomputer programs or原创 2013-05-09 11:44:04 · 1861 阅读 · 0 评论 -
Python垃圾回收(gc)拖累了程序执行性能?
起因前段时间,在做文本处理的实验时,需要预加载大量的原始数据(100W),在Python中使用的字典(dict)类型负责保存这些数据,很快就开发完成 了一个Demo版,然而程序执行的效率不是那么令人满意,通过使用Python中的profile发现,影响程序执行性能的关键语句就那么几条(用 dict保存加载后原始数据,这是个循环遍历。)解决问题既然找到了问题源,于是就勒起衣袖转载 2013-05-02 17:49:05 · 1382 阅读 · 1 评论 -
游戏服务器之python短连接服务器(登录服务器)
以自定义的登录协议来作为网络接收,在根据事件号来回调处理登录消息。以此来说明下使用twisted的反应器和自定义的udp协议来具体处理应用。1、登录服务器及其处理协议2、登录服务器的自定义收发协议3、用户会话1、登录服务器及其处理协议class LoginServer: PORT = 8888 _SESSION_BEGIN原创 2014-03-09 22:58:07 · 2428 阅读 · 0 评论 -
python升级
centos5.5 默认是2.4的python ,想用2.7,就升级1.先安装GCC(如果有的就不用了)yum -y install gcc2.下载Python-2.7.2[root@localhost ~]# wgethttp://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz23.解压Python-2.7.2[ro原创 2013-10-27 02:31:10 · 842 阅读 · 0 评论 -
Python源码剖析 :内存垃圾回收
Python内存回收的基石是引用计数,“当一个对象的引用被创建或复制时,对象的引用技术加1;当一个对象的引用被销毁时,对象的引用技术减1”,如果对象的引用计数减少为0,将对象的所占用的内存释放。 引用计数的缺点是对循环引用无能为力,优点是将内存释放的操作时机离散化,不会引起瞬间的大波动。Python采用Mark-Sweep算法来解决循环引用问题Mark-Sweep过转载 2013-05-02 17:44:51 · 991 阅读 · 0 评论 -
python高级数据类型
4.1采用序列组合数据字符串、列表和元组都是Python内置的序列数据类型。序列类型代表一组有序的数据元素,元素类型可为任意类型。列表和元组的区别是可以更改。列表适于管理很多个项,元组适于管理一个项的不同部分。4.1.1创建列表用一个空的方括号即可。>>> x=[] # an empty list可以调用list(seq)函数,将一个序列类型转换为列转载 2013-05-02 20:04:23 · 1262 阅读 · 0 评论 -
python 迭代器
迭代器Iterators迭代器仅是一容器对象,它实现了迭代器协议。它有两个基本方法:1)next方法返回容器的下一个元素2)__iter__方法返回迭代器自身迭代器可使用内建的iter方法创建,见例子:>>> i = iter('abc')>>> i.next()'a'>>> i.next()'b'>>> i.next()'c'>>> i转载 2013-05-04 01:57:45 · 766 阅读 · 0 评论 -
python 生成器
生成器是一次生成一个值的特殊类型函数。可以将其视为可恢复函数。调用该函数将返回一个可用于生成连续 x 值的生成器【Generator】简单的说就是在函数的执行过程中,yield语句会把你需要的值返回给调用生成器的地方,然后退出函数,下一次调用生成器函数的时候又从上次中断的地方开始执行,而生成器内的所有变量参数都会被保存下来供下一次使用。示例代码view plainpri转载 2013-05-04 01:24:54 · 1003 阅读 · 0 评论 -
Python创建类的时候,是否继承object问题
在python中,创建类可以这样:[html] view plaincopyclass A: pass 也可以这样:[html] view plaincopyclass A(object): pass 那么二者有什么区别和联系呢?看转载 2013-05-04 19:25:22 · 979 阅读 · 0 评论 -
python eval
#coding=UTF-8globals = {'x': 1,\ 'y': 2,\ 'birds': ['Parrot', 'Swallow', 'Albatross']}locals = {'x':2,\'y':3,\'birds': ['Parrot111', 'Swallow111', 'Albatross111']}a原创 2013-05-04 23:26:29 · 1076 阅读 · 0 评论 -
python---解决“Unable to find vcvarsall.bat”错误
安装python的pygame模块,发生Unable to find vcvarsall.bat的错误,方法如下:首先安装MinGW,在MinGW的安装目录下找到bin的文件夹,找到mingw32-make.exe,复制一份更名为make.exe;把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;打开命令原创 2013-08-24 14:34:18 · 1310 阅读 · 0 评论