好的,我需要使用Python下载一些网页,并快速调查我的选项.
包含在Python中:
urllib - 在我看来,我应该使用urllib2代替.urllib没有cookie支持,只有HTTP/FTP /本地文件(没有SSL)
urllib2 - 完整的HTTP/FTP客户端,支持最需要的东西,如cookie,不支持所有HTTP动词(只有GET和POST,没有TRACE等)
功能齐全:
机械化 - 可以使用/保存Firefox/IE cookie,采取跟随第二个链接的行动,积极维护(2011年3月发布0.2.5)
PycURL - 支持curl所做的一切(FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP),坏消息:自2008年9月9日起未更新(7.19.0)
新的可能性:
urllib3 - 支持连接重用/池和文件发布
不推荐使用(也就是使用urllib/urllib2):
httplib - 仅限HTTP/HTTPS(无FTP)
httplib2 - 仅限HTTP/HTTPS(无FTP)
让我印象深刻的第一件事是urllib/urllib2/PycURL/mechanize都是非常成熟的解决方案,效果很好.机械化和PycURL附带了许多Linux发行版(例如Fedora 13)和BSD,所以安装通常不是问题(所以这很好).
urllib2看起来不错,但我想知道为什么PycURL和机械化看起来都非常受欢迎,是否有一些我缺少的东西(即如果我使用urllib2,我会在某个角落将自己画到一个角落?).我真的很喜欢这些事情的优点/缺点的反馈,所以我可以为自己做出最好的选择.
编辑:在urllib2中添加了关于动词支持的注释
我在Visual Studio 2005下编译了许多本机C++库(Win32,没有MFC),并在许多解决方案中使用.
我希望能够选择编译并将它们链接为静态库或DLL,具体取决于我正在使用它们的特定解决方案的需求.
最好的方法是什么?我考虑过这些方法:
编辑:如果有人建议,我也尝试了一个更"聪明"的#3版本,其中我定义了一个包含名为"ModuleConfigurationType"的UserMacro的.vsprops,其值为"2"(DLL)或" 4"(静态库),并更改了.vcproj中的配置ConfigurationType="$(ModuleConfigurationType)"
.Visual Studio以静默方式无需警告即可删除该属性并替换为该属性ConfigurationType="1"
.太有帮助了!
我错过了更好的解决方案吗?
c++ winapi visual-studio-2005 projects-and-solutions vsprops
在函数式编程中,将任何"循环"代码优化为尾递归通常很重要.尾递归算法通常在两个函数之间分开,但是 - 一个用于设置基本情况,另一个用于实现实际循环.一个好的(尽管是学术的)例子是反向功能.
reverse :: [a] -> [a]
reverse = reverse_helper []
reverse_helper :: [a] -> [a] -> [a]
reverse_helper result [] = result
reverse_helper result (x:xs) = reverse_helper (x:result) xs
Run Code Online (Sandbox Code Playgroud)
"reverse_helper"并不是一个很好的描述性名称.但是,"reverse_recursive_part"只是尴尬.
你会对这样的帮助函数使用什么命名约定?
haskell functional-programming naming-conventions helper-functions