我有对象列表.我想在这个列表中找到一个(第一个或任何)对象,它具有等于的属性(或方法结果 - 无论如何)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只是一个例子.当然我们想要得到满足任何条件的元素.
据我所知,在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装饰器"和"装饰器模式"之间有什么区别?
我应该何时使用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) 是否有可能安装ipdb(或其他一些编写来明确地执行此操作的程序包)将导致breakpoint()运行ipdb而不是pdb而不绑定sys.breakpointhook()到ipdb?
https://www.python.org/dev/peps/pep-0553/
我不是在问ipdb是否会这样做,或者是否会这样做,但是如果它可以编码那么.我知道我可以设置环境变量PYTHONBREAKPOINT=ipdb.set_trace.问题是,是否可以通过安装来触发此行为ipdb.
有没有办法将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
我正在寻找专为程序员设计的颜色方案,可供许多流行的IDE使用.最近我发现了Solarized.它应该可以减少眼睛疲劳,使用它一段时间后我必须说它是真的.虽然,我真的不喜欢曝光的颜色.
当我换回原来的颜色时,他们太明亮了.我对这种日晒颜色对我眼睛的影响感到非常惊讶.
我想知道是否有其他主题设计具有如此精确的广泛的IDE(甚至终端颜色!).
是否可以在现有包的名称空间/路径中添加一些不是命名空间包的东西?
让我们说有一个名为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的,我想从两个进口package和package.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)
我修改了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) 是否可以在提交前预测修订号?
这会很有用.我想在changelog中编写修订版号,并将其与提供的更改一起提交.
我知道在我的提交到达repo之前可以更改数字,但是知道它仍然会很好.
我正在使用第一种格式以纯文本格式编写更改日志
更多信息:每个提交消息都包含问题ID,这也出现在更改日志的标题中.
请坚持
我问的问题是否可能以及如何,如果这是有意义的或其他任何事情.
我为什么需要这个?我需要这些信息,部署应用程序的人会知道这些更改出现在哪个版本中,这样他就可以相应地更新生产服务器.无论如何,他都会阅读更改日志,因为它包含有关数据库更改和其他重要内容的信息.如果他不习惯blame看看这个条目属于哪个版本,那会更容易一些.
我正在尝试将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 ×6
version ×2
colors ×1
css ×1
decorator ×1
django ×1
eclipse ×1
google-plus ×1
ide ×1
ipdb ×1
isort ×1
javascript ×1
list ×1
milestone ×1
namespaces ×1
pep8 ×1
pip ×1
pycharm ×1
pypi ×1
python-3.7 ×1
python-3.x ×1
revision ×1
setuptools ×1
svn ×1
trac ×1
vim ×1