小编Tob*_*ias的帖子

是否有一个装饰器来简单地缓存函数返回值?

考虑以下:

@property
def name(self):

    if not hasattr(self, '_name'):

        # expensive calculation
        self._name = 1 + 1

    return self._name
Run Code Online (Sandbox Code Playgroud)

我是新手,但我认为缓存可能会被装入装饰器中.只有我找不到喜欢它的人;)

PS真正的计算不依赖于可变值

python caching decorator

133
推荐指数
11
解决办法
9万
查看次数

如何在课堂上赋予弦乐性?

我想要一个带有一个附加属性的字符串,让我们说是用红色还是绿色打印它.

子类化(str)不起作用,因为它是不可变的.我看到了价值,但它可能很烦人.

多重遗产有帮助吗?我从来没用过那个.

仅继承对象并使用self.value = str意味着我必须自己实现所有字符串消息(如strip).

或者有没有办法转发它们,比如Ruby的missing_method?

我认为使用实例索引的类级别字典来存储颜色可能会起作用.太丑了?

python string multiple-inheritance immutability

6
推荐指数
1
解决办法
1609
查看次数

没有繁重的数据库怎么做模糊字符串搜索?

我有目录号到产品名的映射:

35  cozy comforter
35  warm blanket
67  pillow
Run Code Online (Sandbox Code Playgroud)

并且需要一个能够找到拼写错误的混合名称的搜索,例如"warm cmfrter".

我们使用edit-distance(difflib)编写代码,但它可能无法扩展到18000个名称.

我实现了与Lucene类似的东西,但由于PyLucene只包装了Java,这会使部署复杂化到最终用户.

SQLite通常没有编译的全文或评分.

Xapian的绑定就像是C++,并且有一定的学习曲线.

尚未详细记录,但包括滥用的拼写检查.

那里还有什么?

python database full-text-search fuzzy-search

6
推荐指数
1
解决办法
6073
查看次数

如何提供模块的特定于平台的实现?

我需要通过提供多种实现来使模块中的一个函数独立于平台,而不更改导入它的任何文件。以下作品:

do_it = getattr(__import__(__name__), "do_on_" + sys.platform)

...但是如果将模块放入包中则会中断。

另一种选择是使用 if/elif 来硬编码调用 do_it() 中的其他函数。

还有更好的吗?

python

5
推荐指数
2
解决办法
2710
查看次数

Gruber的Python中的URL正则表达式

如何重写这种新方法来识别在Python中工作的地址?

\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))

python regex gruber

5
推荐指数
2
解决办法
1851
查看次数

为什么内置函数而不是root类方法?

(我确定这是一个FAQ,但也很难google)

为什么Python使用abs(x)而不是x.abs?

据我所知,abs()除了调用之外x.__abs__还可以在object.abs()中实现

它是历史的吗,因为根本不存在根类?

python oop

4
推荐指数
1
解决办法
622
查看次数

脚本Safari 5.1打开选项卡

可能重复:
使用AppleScript在新的Safari选项卡中打开URL

如何告诉Safari在当前窗口的新选项卡中打开URL?

与使用AppleScript的新Safari选项卡中Open URL重复,但其答案不再适用于当前版本的Safari(5.1 on 10.6.8).选项卡已创建但为空:

tell front window of application "Safari"
make new tab with properties {URL:"http://www.stackoverflow.com"}
end tell
Run Code Online (Sandbox Code Playgroud)

如果您创建一个新的"文档"而不是URL,但这会打开一个窗口.

对于它的价值,我将此报告为Apple的一个错误.但是解决方法会很棒.

safari applescript

4
推荐指数
1
解决办法
3832
查看次数