小编237*_*371的帖子

在运行数小时后永久"名称解析暂时失败"

在Linux上运行了几个小时后,我使用urllib2,httplib和线程的Python 2.6程序开始为每个请求引发此错误:

<class 'urllib2.URLError'> URLError(gaierror(-3, 'Temporary failure in name resolution'),)

如果我重新启动程序,它会再次开始工作.我的猜测是某种资源枯竭但我不知道如何检查它.我该如何诊断和解决问题?

python urllib2 httplib

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

当我定义函数时,我应该以什么顺序放置参数?

我经常发现很难决定并且不一致.我可以遵循一些规则吗?

例如:

def remove_except(haystack, needle, exclude_value):
    for key in hackstack:
        if key in needle and haystack[key] != exclude_value:
            hackstack.pop(key)
Run Code Online (Sandbox Code Playgroud)

可能很容易:

def remove_except(needle, exclude_value, haystack):
    for key in hackstack:
        if key in needle and haystack[key] != exclude_value:
            hackstack.pop(key)
Run Code Online (Sandbox Code Playgroud)

这不是一个完美的例子,因为我倾向于将变量作为第一个参数进行修改,例如haystack,这甚至可能是一个惯例,但除此之外,我不确定该怎么做.

我对比Python更多的语言感兴趣.

language-agnostic coding-style conventions

7
推荐指数
1
解决办法
287
查看次数

使用太多内存的大规模Python整数集

建立

  • Python 2.6
  • Ubuntu x64

我有一组独特的整数,其值介于1到5千万之间.随机添加新的整数,例如numberset.add(random.randint(1, 50000000)).我需要能够快速添加新的整数并快速检查是否已存在整数.

问题

过了一会儿,这套装置对我的低内存系统来说变得太大了,我体验到了MemoryError.

如何在使用更少内存的同时实现这一目标?使用磁盘而不重新配置系统(例如交换文件)的最快方法是什么?我应该使用像sqlite这样的数据库文件吗?是否有一个库可以压缩内存中的整数?

python memory-management set

4
推荐指数
2
解决办法
2150
查看次数