程序设计

专业和发烧友程序员的问答


5
为什么[]比list()快?
我最近比较了[]和的处理速度,并list()惊讶地发现它的[]运行速度是的三倍以上list()。我跑了相同的测试与{}和dict(),结果几乎相同:[]和{}两个花了大约0.128sec /百万次,而list()并dict()把每个粗0.428sec /万次。 为什么是这样?不要[]和{}(可能()和'',太)立即传回了一些空的股票面值的副本,而其明确命名同行(list(),dict(),tuple(),str())完全去创建一个对象,他们是否真的有元素? 我不知道这两种方法有何不同,但我很想找出答案。我在文档中或SO上都找不到答案,而寻找空括号却比我预期的要麻烦得多。 通过分别调用timeit.timeit("[]")和timeit.timeit("list()"),和timeit.timeit("{}")和timeit.timeit("dict()")来比较列表和字典,以获得计时结果。我正在运行Python 2.7.9。 我最近发现“ 为什么True慢于if? ”比较了if Trueto 的性能,if 1并且似乎触及了类似的文字对全局场景;也许也值得考虑。

13
实例化新的Android片段的最佳做法
我已经看到了两种在应用程序中实例化新Fragment的常规做法: Fragment newFragment = new MyFragment(); 和 Fragment newFragment = MyFragment.newInstance(); 第二个选项使用静态方法newInstance(),通常包含以下方法。 public static Fragment newInstance() { MyFragment myFragment = new MyFragment(); return myFragment; } 最初,我认为主要的好处是可以在创建Fragment的新实例时重载newInstance()方法以提供灵活性-但我也可以通过为Fragment创建重载的构造函数来做到这一点。 我错过了什么? 一种方法比另一种方法有什么好处?还是只是好的做法?


28
正在下载整个S3存储桶?
我注意到似乎没有选择从AWS管理控制台下载整个S3存储桶的选项。 有没有一种简单的方法可以将所有东西都放在我的一个存储桶中?我当时正在考虑将根文件夹wget设为公用,使用它来获取所有内容,然后再次将其设为私有,但是我不知道是否有更简单的方法。

23
对象常量/初始化程序中的自引用
有什么办法可以使以下内容在JavaScript中起作用? var foo = { a: 5, b: 6, c: this.a + this.b // Doesn't work }; 在当前形式下,此代码显然会引发引用错误,因为this未引用foo。但是,是否有任何方法可以使对象文字的属性值取决于先前声明的其他属性?



13
如何删除使用Python的easy_install安装的软件包?
Python easy_install使安装新软件包非常方便。但是,据我所知,它没有实现依赖项管理器的其他常见功能-列出和删除已安装的软件包。 找出已安装的软件包的最佳方法是什么,以及删除已安装软件包的首选方法是什么?如果我手动(例如,通过rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg类似方式)删除软件包,是否需要更新任何文件?

30
Git:无法检出分支-错误:pathspec'…'与git已知的任何文件都不匹配
我不确定为什么我无法检出我以前处理过的分支。请参阅以下命令(注意:co是的别名checkout): ramon@ramon-desktop:~/source/unstilted$ git branch -a * develop feature/datts_right feature/user_controlled_menu feature/user_controlled_site_layouts master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/feature/datts_right remotes/origin/master ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git. 我不确定这是什么意思,而且在Google上找不到我能理解的任何内容。 我如何结帐该分支,我该怎么做才能打破这一分支? 更新: 我找到了这篇文章,跑步git show-ref给了我: 97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right 11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop c438c439c66da3f2356d2449505c073549b221c1 …
704 git 


10
Python2中的dict.items()和dict.iteritems()有什么区别?
dict.items()和之间有适用的区别dict.iteritems()吗? 从Python文档: dict.items():返回字典的(键,值)对列表的副本。 dict.iteritems():在字典的(键,值)对上返回迭代器。 如果我运行下面的代码,每个似乎都返回对同一对象的引用。我缺少任何细微的差异吗? #!/usr/bin/python d={1:'one',2:'two',3:'three'} print 'd.items():' for k,v in d.items(): if d[k] is v: print '\tthey are the same object' else: print '\tthey are different' print 'd.iteritems():' for k,v in d.iteritems(): if d[k] is v: print '\tthey are the same object' else: print '\tthey are different' 输出: …


16
addEventListener与onclick
addEventListener和之间有什么区别onclick? var h = document.getElementById("a"); h.onclick = dothing1; h.addEventListener("click", dothing2); 上面的代码一起驻留在单独的.js文件中,并且它们都可以正常工作。

11
伪造,嘲笑和存根之间有什么区别?
我知道我如何使用这些术语,但是我想知道是否存在用于单元测试的伪造,模拟和存根的定义?您如何为测试定义这些?描述您可能会使用每种情况的情况。 这是我的用法: Fake:实现接口但包含固定数据且没有逻辑的类。只需根据实现返回“好”或“坏”数据。 Mock:实现接口的类,并允许动态设置要返回的值/从特定方法抛出的异常,并提供检查是否已调用特定方法的能力。 存根(Stub):类似于模拟类,不同之处在于它不提供验证方法是否已被调用的能力。 模拟和存根可以手动生成,也可以由模拟框架生成。伪类是手工生成的。我主要使用模拟来验证我的类和依赖类之间的交互。一旦验证了交互作用并测试了代码中的替代路径,便会使用存根。我主要使用伪造的类来抽象出数据依赖关系,或者当模拟/存根过于繁琐而无法每次设置时。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.