- 浏览: 28236 次
- 性别:
- 来自: 北京
最新评论
文章列表
MIT、GPL、LPGL、BSD 的区别
BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:•如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
•如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声 ...
网上广为流传着"不要使用+" 连接字符串的“经验”, 特别是这篇文章当中提到了
http://www.oschina.net/question/129540_61768
引用要使用 out = "<html>%s%s%s%s</html>" % (head, prologue, query, tail)
而避免 out = "<html>" + head + prologue + query + tail + "</html>"
-------
实际上果真如此吗? ...
python当中的一个class A的实例a1,经常看到有的源代码写成h = a1(), 这时候并不是调用A的构造函数,但是a1是个实例,怎么能够call呢,后来看了源代码发现,class A当中有这么一句
def __call__( self, *args ):
....
顿时领悟了,添加了这个方法后,实例就可以像函数一样使用了,有点像Javascript, 模糊了class和function的界限,不过python这里使用明确的__call__ 才跨越此界限
#author: 54yuri
import os
import sys
def read_file( file_path ):
fd = open( file_path, "r" )
fd.seek( 0, os.SEEK_SET )
content = fd.read()
fd.close()
return content
def write_file( file_path, content ):
fd = open( file_path, "w" ...
Python的lambda函数与排序
2008-06-19 23:13:34 by deepblue
前几天看到了一行求1000的阶乘的Python代码:
print reduce(lambda x,y:x*y, range(1, 1001))
一下子被python代码的精简与紧凑所折服,故对代码进行了简单的分析。
reduce与range都是Python的内置函数。
range(1,1001)表示生成1到1000的连续整数列表(List)。
reduce(functionA,iterableB),functionA为需要两个变量的函数,并返回一个值。iterableB为 ...
有时候在python 当中使用
import xxx
help(xxx)
太麻烦,
python -c "import xxx;help(xxx);" > /tmp/1.txt
or
python -c "import xxx;help(xxx.yyy)" > /tmp/2.txt
导出成文本之后,可以比较方便的搜索以及复制粘贴出来
爽吧?
大家知道一些控件Button, List,Checkbox,Slider 等等各种会发出不同的命令(消息、事件)等等
比如Button会发出Button Clicked, 但是List就不可能发出来。那么这些控件相关的命令,如何获得呢?
wxPython当中使用help(wx.Yyy) Yyy = 控件名, 也是语焉不详
后来终于找到个好方法
在wxPython的安装目录去搜索
假设Yyy是想找的控件名,如TREE, CHECK_BOX, MENU之类的
find /{wxPython setup path}/wx -name "*.py" | xar ...
一工程,结构如下 ├─MyProject ├─MyModule │ └─moudle1.py ├─Util └─Common └─templates 要记得在MyModule当中添加__init__.py, ├─MyProject ├─MyModule │ └─__init__.py │ └─moudle1.py 否则Python不会认为那是一个有效的模块,而只会当成普通目录,在别的文件当中就无法import MyModule.moudle1.py 添加之后就ok了
曾经看到代码当中有一段颇为奇怪,是
b = 111
a = ( b, )
为什么要写成这样呢( b, )? b后面多一个"," 还能编译通过?!太怪了
后来终于明白了,这a是个Tuple,如果写成
a = (b)
那就成了强制转换了, python当中为了区别,可以允许() 当中最后一个元素依然以,结尾 !
其实写成
a = ( 33, b, )
a = ( 22, 33, b, )
也没错
今天看到(2011-06-18)今天看到一句话,太给力了,给人很多思考!from http://blog.csdn.net/yglbj/archive/2010/05/16/5597555.aspx
================================================
此外,Java的图形API严重分裂为Swing和SWT。 Swing是一个扶不起的阿斗,bug很多,做出来的界面不伦不类,而且无法处理一些类似系统托盘之类和操作系统关系比较大的功能,并且性能非常糟糕,可以这样说,Java成也Sun,败也Sun;SWT要比Swing好得多了,但是可惜的是, Sun拒绝 ...
从django的manual 当中看到的
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_date': now})
很多时候,就像在这个范例中那样,你发现自己一直在计算某个变量,保存结果到变量中
(比如:前面代码中的 now ),然后将这些变量发送给模板。特别懒的程序员可能注意到给
这些临时变量 和 模板变量命名显得有点多余。不但多余,而且还要进行额外的键盘输入。
如果你是个喜欢 ...
from http://kasicass.blog.163.com/blog/static/3956192009510115226144/
django.core.management.base.py, commands 的基类,定义了几个基础接口
django.core.management.[commands], 里面实现了 startproject, runserver 等所有的 commands
django.core.management.__init__.py 中的 execute_manager() 是所有逻辑的入口。
python manager.py runserver i ...
via http://docs.djangoproject.com/en/dev/topics/http/sessions/
在view当中使用session的部分,最好改为
request.session.set_test_cookie()
if request.session.test_cookie_worked():
request.session.delete_test_cookie()
else:
return HttpResponse("Please enable cookies and try aga ...
为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。
--------------------------------------------------------------------------------
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicod ...
Judging from comp.lang.python and other forums, Python 2.5’s new with statement seems to be a bit confusing even for experienced Python programmers.
As most other things in Python, the with statement is actually very simple, once you understand the problem it’s trying to solve. Consider this piece ...