Tag: pep

你忽略了什么PEP 8指南,你坚持哪些?

多年来,我写的Python越多,我发现自己同意大多数的指导方针,尽pipe我一直故意为了自己的原因打破一些方针。 我很想知道在PEP 8(或其他PEPs也许)人们宗教坚持和为什么,什么人发现不方便或不足。 在我的情况(一般工作),只有一些我们偏离的东西: 下划线的小写字母名称,我可以看到它的点,因为它会一直保持一致,但我们倾向于使用lowerCamelCase,即使偶尔会引入一些不一致(例如部分或大写字母缩写以及后面的单词往往下到刺激的时刻)。 主要是因为我们经常使用的接近全部的API使用camelCase(一些较高,一些较低),并且由于某种原因,我发现它更易于阅读,并倾向于将下划线预留为分离令牌或规定的混乱/模糊。 我仍然无法把自己的东西放在PEP规定的对象内部。 new和init我倾向于在类没有空行的时候留下正确的位置,因为我总是希望在类中读取类名和参数,这些参数在类中的作用范围相同(比如init,get和set相同的attrib或一组attribs)我只有单个空间分开,我喜欢三个类之间的空间,两个方法之间我不会精神聚合在该对象的地图。 这纯粹是为了代码的视觉效果和可读性。 我发现stream程控制内的非常紧凑的内容以及方法和对象之间的这种间隔一直引导我的眼睛正好在代码停放几个月后我想要重新阅读的地方。 它也很好地折叠我的编辑select。 有些东西,而不是我坚持,这让我疯了,当我读否则书面,是制表符而不是空格(尤其是当我们使用的一些应用内编辑器没有真正的标签replacefunction,大大造成了代码库中的污染原型阶段)。 事物的顺序,如import,什么import,全局等等。当这些文件被混淆或乱序的时候,这些文件会导致大量的import文件。 空格中的空格,特别是当用户使用标签时,并尝试在var名称中跨越不同长度的行alignment赋值操作(并且似乎没有办法说服那些执行该操作的人看起来不错的代码不整齐) 。 控制块内的间距,特别是当我在同一个stream量控制块内看到明显的随机间隔时,以及对象内用于方法的类似数量的间距。 我甚至在开始阅读这个该死的东西之前,我不得不编辑这些东西。 所以,那些是我的,也是我“违反”PEP背后的理由(有些是共同的,有些被同事所诟病的)。 我会很好奇读什么其他Pythonistas做和不做在这些方面。

E731不分配lambdaexpression式,使用def

每当我使用lambdaexpression式时,我都会得到这个pep8警告。 lambdaexpression式不推荐? 如果不是为什么?

为什么Python3中没有xrange函数?

最近我开始使用Python3,它缺乏xrange的伤害。 简单的例子: 1) Python2: from time import time as t def count(): st = t() [x for x in xrange(10000000) if x%4 == 0] et = t() print et-st count() 2) Python3: from time import time as t def xrange(x): return iter(range(x)) def count(): st = t() [x for x in xrange(10000000) if x%4 == […]

什么是Python函数sum(),但乘法? 产品()?

Python的sum()函数返回迭代中的数字总和。 sum([3,4,5]) == 3 + 4 + 5 == 12 我正在寻找返回产品的function。 somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60 我很确定这样的function存在,但我找不到它。

更好地“尝试”一些东西,并捕捉exception或testing是否可能首先避免exception?

我应该testing一下是否有效,或只是try去做,并捕获exception? 有没有可靠的文件说有一种方法是优先的? 是一种更pythonic ? 例如,我应该: if len(my_list) >= 4: x = my_list[3] else: x = 'NO_ABC' 要么: try: x = my_list[3] except IndexError: x = 'NO_ABC' 有些想法… PEP 20说: 错误不应该默默通过。 除非明确沉默。 应该使用一个try而不是一个if被解释为一个错误地传递的错误? 如果是这样,你是否明确地使用这种方式来消除它,因此,它可以吗? 我不是指只能做1件事情的情况; 例如: try: import foo except ImportError: import baz