小编Har*_*ons的帖子

Python:使用4个空格进行缩进.为什么?

在编写python时,我只使用2个空格来缩进,确定PEP-8确实建议有4个空格,但从历史上看,这是不寻常的.

那么,任何人都可以说服我使用4个空格而不是2个空格吗?有什么优点和缺点?

PS最后,将所有现有代码库从2个空间转换为4个空格的简单方法是什么?


PPS PEP-8还建议不要使用标签进行缩进.在这里阅读


所以,总结一下:

优点:

  • 包裹超过80行的字符串时有更多的空间来安排.
  • 可以从代码片段中复制代码,它只是起作用.

缺点:

  • 使用更深层次的嵌套语句,您可以减少实际代码的空间.

谢谢.

python conventions pep8 indentation

69
推荐指数
9
解决办法
6万
查看次数

Django持久数据库连接

我正在使用django和apache以及mod_wsgi和PostgreSQL(都在同一主机上),我需要处理很多简单的动态页面请求(每秒数百个).我遇到的问题是瓶颈是django没有持久的数据库连接并且在每个请求上重新连接(需要接近5ms).在进行基准测试时,我得到了持久连接,我可以处理接近500 r/s而没有我只得到50 r/s.

有人有什么建议吗?如何修改django以使用持久连接?或者加速从python到DB的连接

提前致谢.

python database django mod-wsgi persistent

54
推荐指数
4
解决办法
3万
查看次数

在python中生成密码

我想在python中生成一些字母数字密码.一些可能的方法是:

import string
from random import sample, choice
chars = string.letters + string.digits
length = 8
''.join(sample(chars,length)) # way 1
''.join([choice(chars) for i in range(length)]) # way 2
Run Code Online (Sandbox Code Playgroud)

但我不喜欢两者,因为:

  • 方式1只选择了唯一的字符,你不能生成密码长度> len(字符)
  • 方式2我们有i变量未使用,我找不到如何避免这种情况的好方法

那么,还有其他好的选择吗?

PS所以这里我们正在进行一些timeit100000次迭代的测试:

''.join(sample(chars,length)) # way 1; 2.5 seconds
''.join([choice(chars) for i in range(length)]) # way 2; 1.8 seconds (optimizer helps?)
''.join(choice(chars) for _ in range(length)) # way 3; 1.8 seconds
''.join(choice(chars) for _ in xrange(length)) # way 4; 1.73 seconds
''.join(map(lambda x: …
Run Code Online (Sandbox Code Playgroud)

python passwords

47
推荐指数
5
解决办法
4万
查看次数

控制台窗口的替代字体?

我喜欢为控制台找到一些新的/有趣的固定宽度字体.

我们都知道Lucida/Courier,还有什么?

更新

因此,获胜者是Consolas(确实内置于新的Windows 7中)

杰夫有一个很好的主题(以及后来重新讨论的主题),关于这一点:

其他有趣的字体是:

  • Inconsolata
  • Proggy清洁
  • 总站
  • 6x13(如果你需要小字体)

terminal console fonts

42
推荐指数
4
解决办法
5万
查看次数

确保psycopg2数据库连接存活

我有一个python应用程序打开一个数据库连接,可以在线挂起一个小时,但有时数据库服务器重新启动,而python仍然有连接它将无法正常工作OperationalError.

所以我正在寻找任何可靠的方法来"ping"数据库,并知道连接是活的.我检查了一个psycopg2文档,但找不到那样的东西.当然我可以发出一些简单的SQL语句SELECT 1并捕获异常,但我希望有一个本机方法,比如PHP pg_connection_status

谢谢.

python database connection psycopg2

32
推荐指数
4
解决办法
3万
查看次数

Django中管理员和应用程序的不同会话

我想为Django管理界面和应用程序本身提供不同的会话,以便能够以管理员身份登录管理界面并作为应用程序的标准用户.

任何想法如何实现?

PS当然,我可以使用2种不同的网络浏览器实例,还有其他任何方式吗?

django session admin

10
推荐指数
2
解决办法
2001
查看次数

在Python中从dict中删除某些键的最快方法

我正在寻找删除python dict中某些键的最快/最有效的方法

这里有一些选择

for k in somedict.keys(): 
    if k.startswith("someprefix"): 
        del somedict[k]
Run Code Online (Sandbox Code Playgroud)

要么

dict((k, v) for (k, v) in somedict.iteritems() if not k.startswith('someprefix'))
Run Code Online (Sandbox Code Playgroud)

逻辑上第一个片段在较小的dicts上应该更快,它不会创建dict的副本但会创建所有键的列表,但是双重查找和dict重建是耗时的.虽然第二个在更大的dicts上更快,但需要2倍的内存.我在一些小基准测试中检查了我的假设.

什么更快?

python dictionary filter

8
推荐指数
2
解决办法
1万
查看次数

Python会在线程模式下使用所有处理器吗?

在开发部署在Apache mod_wsgi上的Django应用程序时,我发现在多线程(Python线程; mod_wsgi进程= 1个线程= 8)的情况下,Python将不会使用所有可用的处理器.使用多处理方法(mod_wsgi processes = 8个线程= 1)一切都很好,我可以完全加载我的机器.

所以问题是:这种Python行为是正常的吗?我怀疑它是因为使用少数线程的1进程是默认的mod_wsgi方法.

该系统是:

FreeBSD 7.2 AMD64和Python 2.6.4上的2xIntel Xeon 5XXX系列(8核(16个超线程))


谢谢大家的回答.我们都发现这种行为是正常的,因为GIL.这是一个很好的解释:http: //jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ 或stackoverflow GIL讨论:什么是全局解释器锁(GIL)?.

python django performance multithreading multiprocessing

6
推荐指数
1
解决办法
4396
查看次数

来自HEX字母的单词

我正在寻找可以用十六进制字母创建的单词,[0-9a-f]+ 比如C0FFEE, DEFACED
我们也可以使用lisoz,1=l,i; 5=s; 2=z; 0=o等等.
它可以用于内存寻址或IPv6地址,因此它会很有趣,也更容易记住.

这里有很好的列表:http://www.nsftools.com/tips/HexWords.htm 但我相信我们可以想出一些不存在的东西或发明新词:)

hex naming memory-address

3
推荐指数
1
解决办法
3527
查看次数