小编sel*_*ler的帖子

在列表中查找属性等于某个值(满足任何条件)的对象

我有对象列表.我想在这个列表中找到一个(第一个或任何)对象,它具有等于的属性(或方法结果 - 无论如何)value.

找到它的最佳方法是什么?

这是测试用例:

  class Test:
      def __init__(self, value):
          self.value = value

  import random

  value = 5

  test_list = [Test(random.randint(0,100)) for x in range(1000)]

  # that I would do in Pascal, I don't believe isn't anywhere near 'Pythonic'
  for x in test_list:
      if x.value == value:
          print "i found it!"
          break
Run Code Online (Sandbox Code Playgroud)

我认为使用生成器并reduce()没有任何区别,因为它仍然会遍历列表.

ps:方程式value只是一个例子.当然我们想要得到满足任何条件的元素.

python django list

183
推荐指数
3
解决办法
15万
查看次数

PEP8:W292和W391之间的冲突

据我所知,在unix中,最好总是在文件末尾有空行 - 换句话说:每一行都应该以\n.

在用PEP8检查我的python代码时,我注意到它还指出应该\n在文件末尾:

W292 no newline at end of file
    JCR: The last line should have a newline.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它与W391发生冲突:

W391 blank line at end of file
    JCR: Trailing blank lines are superfluous.

    Okay: spam(1)
    W391: spam(1)\n
Run Code Online (Sandbox Code Playgroud)

怎么样?我应该在文件末尾有空行吗?

python pep8

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

Python装饰器和装饰器模式有什么区别?

"Python装饰器"和"装饰器模式"之间有什么区别?

我应该何时使用Python装饰器,何时应该使用装饰器模式?

我正在寻找Python装饰器的例子和完成相同的装饰器模式.

@AcceptedAnswer

我知道Jakob Bowyer的回答是有效的.然而,Strikar的答案让我理解了原因.

在Srikar回答并研究了资源之后我写了这个例子,所以我可以想象和理解Python装饰器和装饰器模式.

我必须不同意 Strikar的" Python装饰器不是装饰器模式的实现 ".在我学到的东西之后,我坚信Python装饰器是装饰器模式的实现.只是不是经典的方式.

另外,我需要补充的是,尽管Strikar说" Python装饰器在定义时为函数和方法添加功能 ",但您可以在运行时轻松使用Python装饰器.

然而,我仍然认为Stiker的答案是被接受的,因为它帮助我理解 Python中装饰器模式的实现.

"""
Testing Python decorators against the decorator pattern
"""
def function(string):
    return string

def decorator(wrapped):
    def wrap(string):
        # Assume that this is something useful
        return wrapped(string.upper())
    return wrap

def method_decorator(wrapped):
    def wrap(instance, string):
        # Assume that this is something useful
        return wrapped(instance, string.upper())
    return wrap

@decorator
def decorated_function(string):
    print('! '.join(string.split(' ')))

class Class(object): …
Run Code Online (Sandbox Code Playgroud)

python design-patterns decorator

23
推荐指数
1
解决办法
5627
查看次数

正确使用版本和里程碑的方法

Trac中版本和里程碑的预期目的是什么?怎么用?里程碑与版本有何不同?

trac version milestone

21
推荐指数
2
解决办法
6580
查看次数

breakpoint()默认使用ipdb

是否有可能安装ipdb(或其他一些编写来明确地执行此操作的程序包)将导致breakpoint()运行ipdb而不是pdb而不绑定sys.breakpointhook()ipdb

https://www.python.org/dev/peps/pep-0553/

我不是在问ipdb是否会这样做,或者是否会这样做,但是如果它可以编码那么.我知道我可以设置环境变量PYTHONBREAKPOINT=ipdb.set_trace.问题是,是否可以通过安装来触发此行为ipdb.

python python-3.x ipdb python-3.7

10
推荐指数
1
解决办法
838
查看次数

Google+按钮删除右侧的可用空间/边距 对齐到右边

有没有办法将google plus按钮对齐?似乎g +按钮保留了一些位置,以防有更多的数字.如果sulution只能使用css/html - 没有javascript,那将是很好的.

更新
自从昨天以来谷歌已经改变了1+按钮的一点点api,但仍然似乎无法将它对齐到右边.

更新2
问题已于2011年8月24日提出.从那时起,Google+已经多次改变.这个帖子不再需要垃圾邮件的答案(重复,同样的答案!).您所有建议的选项当时都不存在.查看google +文档网页上的参数:https://developers.google.com/+/plugins/+1button/?hl = pl#plusonetag-parameters

javascript css google-plus-one google-plus

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

寻找专为程序员设计的IDE颜色方案

我正在寻找专为程序员设计的颜色方案,可供许多流行的IDE使用.最近我发现了Solarized.它应该可以减少眼睛疲劳,使用它一段时间后我必须说它是真的.虽然,我真的不喜欢曝光的颜色.

当我换回原来的颜色时,他们太明亮了.我对这种日晒颜色对我眼睛的影响感到非常惊讶.

我想知道是否有其他主题设计具有如此精确的广泛的IDE(甚至终端颜色!).

eclipse ide vim syntax-highlighting colors

5
推荐指数
1
解决办法
496
查看次数

Python命名空间包作为现有包的扩展

是否可以在现有包的名称空间/路径中添加一些不是命名空间包的东西?

让我们说有一个名为ext的外部包package.

我在project.py这样使用它:

from package.module import Class
Run Code Online (Sandbox Code Playgroud)

是否有可能创建一个名为extensionnamespace的包,package因此可以从中导入package.extension

from package.module import Class
from package.extension.module import ExtensionClass
Run Code Online (Sandbox Code Playgroud)

是否可以只安装使用两个软件包pip/ setuptools无添加猴补丁到我project.py的,我想从两个进口packagepackage.extension


部分解决方案

我已经能够通过两种方式实现我所需要的:通过修改原始package和猴子修补project.py

结构体:

./test.py
./demo/test.py
./demo/__init__.py
./extension/demo/__init__.py
./extension/demo/extension/test.py
./extension/demo/extension/__init__.py
./extension/__init__.py
Run Code Online (Sandbox Code Playgroud)

内容./test.py:

import demo.test
demo.test.hello()

import demo.extension.test
demo.extension.test.hello()
Run Code Online (Sandbox Code Playgroud)

部分解决方案1 ​​ - 修改原始包

我修改了demo/__init__.py它包含:

import pkgutil

__path__ = pkgutil.extend_path(__path__, __name__)
Run Code Online (Sandbox Code Playgroud)

执行示例:

$ export PYTHONPATH=extension
$ python test.py 
Hello! …
Run Code Online (Sandbox Code Playgroud)

python namespaces pip setuptools pypi

5
推荐指数
1
解决办法
1267
查看次数

在提交之前预测修订号

是否可以在提交前预测修订号?

这会很有用.我想在changelog中编写修订版号,并将其与提供的更改一起提交.

我知道在我的提交到达repo之前可以更改数字,但是知道它仍然会很好.

我正在使用第一种格式以纯文本格式编写更改日志

更多信息:每个提交消息都包含问题ID,这也出现在更改日志的标题中.

请坚持
我问的问题是否可能以及如何,如果这是有意义的或其他任何事情.




我为什么需要这个?我需要这些信息,部署应用程序的人会知道这些更改出现在哪个版本中,这样他就可以相应地更新生产服务器.无论如何,他都会阅读更改日志,因为它包含有关数据库更改和其他重要内容的信息.如果他不习惯blame看看这个条目属于哪个版本,那会更容易一些.

svn revision version

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

如何在PyCharm中为isort设置过滤器作为外部工具

我正在尝试将isort设置为PyCharm中的外部工具.我无法设置过滤器,以便文件路径是链接.

isort的输出是:

ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
Run Code Online (Sandbox Code Playgroud)

根据文档投入 $FILE_PATH$应该是足够的但它不适合我的工作.我已经尝试了几种正则表达式样式而没有任何成功.

python pycharm isort

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