小编Fra*_*lli的帖子

将缓存存储在Python> = 3.2中的functools.lru_cache文件中

@functools.lru_cache在Python 3.3中使用.我想将缓存保存到文件中,以便在重新启动程序时恢复它.我该怎么办?

编辑1可能的解决方案:我们需要挑选任何类型的可调用

问题酸洗__closure__:

_pickle.PicklingError: Can't pickle <class 'cell'>: attribute lookup builtins.cell failed
Run Code Online (Sandbox Code Playgroud)

如果我尝试在没有它的情况下恢复功能,我会得到:

TypeError: arg 5 (closure) must be tuple
Run Code Online (Sandbox Code Playgroud)

python memoization python-3.x

20
推荐指数
3
解决办法
5398
查看次数

在django-rest-framework中过滤ListAPIView

我正在使用ListAPIView,但我无法过滤结果.我的代码是:

class UserPostReadView(generics.ListAPIView):
    serializer_class = PostSerializer
    model = serializer_class.Meta.model
    queryset = model.objects.order_by('-post_time')
    lookup_field = 'poster_id'
    paginate_by = 100
Run Code Online (Sandbox Code Playgroud)

在这种情况下,lookup_field被忽略,但文档说它也支持这个类.如果我尝试get在通用视图上实现自定义,我不知道如何重新实现paginate_by.有任何想法吗?

django django-rest-framework

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

Twitter 2.2轮播示例:如何保持图像比例?

如果您在http://twitter.github.com/bootstrap/examples/carousel.html上减少窗口浏览器宽度,则可以看到背景图像宽高比发生变化.我想保持它(1:1),在左边或右边裁剪我的图像,或者水平对齐它.

你有什么建议?

css twitter-bootstrap

6
推荐指数
2
解决办法
3180
查看次数

拆分长串而不会破坏满足线条的单词

在你认为它是重复的之前(有许多问题要求如何分割长字符串而不破坏单词)请记住我的问题有点不同:顺序并不重要我应该使用单词以便使用每一行越多越好.

我有一组无序的单词,我希望在不使用超过253个字符的情况下将它们组合起来.

def compose(words):
    result = " ".join(words)
    if len(result) > 253:
        pass # this should not happen!
    return result
Run Code Online (Sandbox Code Playgroud)

我的问题是我想尽可能地填补这条线.例如:

words = "a bc def ghil mno pq r st uv"
limit = 5 # max 5 characters

# This is good because it's the shortest possible list,
#   but I don't know how could I get it
# Note: order is not important
good = ["a def", "bc pq", "ghil", "mno r", "st uv"]

# This is bad …
Run Code Online (Sandbox Code Playgroud)

python string algorithm

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

失败时接收器重新启动而不停止管道

今天我决定将我的基于 的小脚本转换gst-launch为真正的Python/GStreamer 应用程序,以添加一些功能。

我开发了一个小程序,它将音频从我的麦克风发送到 Icecast ( shout2send) 和本地存储 ( filesink),这要归功于tee.

有时shout2send会因网络问题而停止。我想每 N 秒重新启动一次此元素,直到连接恢复,而不停止管道,因为本地音频文件不应受到网络条件的影响。

这是我尝试过的:

  1. 网络错误后一秒停止/启动管道(结果:流式传输正常,本地文件被截断)
  2. 取消链接tee,将shout2send状态设置为NULL并将其从管道中删除(结果:GStreamer 严重错误,例如Trying to dispose element ... but it is in PLAYING instead of the NULL state
  3. 尝试了解在这种情况下如何使用 pad(结果:与上面相同,但涉及更多代码)

我应该怎么办?

我的代码如下所示:

import gi
gi.require_version("Gst", "1.0")
from gi.repository import GLib
from gi.repository import Gst
# [...]

def message_handler(bus, message):
    if message.type == Gst.MessageType.ERROR:
        if message.src == shout2send:
            pass # TODO: restart …
Run Code Online (Sandbox Code Playgroud)

python gstreamer python-gstreamer

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

从导航栏品牌打开下拉菜单

我想在每次点击导航栏的品牌时打开一个下拉菜单(使用Twitter Bootstrap),所以我尝试了这段代码:

<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="tabbable">
    <div class="dropdown">
    <a id="drop1" class="dropdown-toggle" data-toggle="dropdown" href="#menu">
        <div class="brand">Brand</div>
    </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
        <li><a href="#">Action</a></li>
    </ul>
    </div>
<ul class="nav">
    <li>
        <a href="#" data-toggle="tab">Item</a>
    </li>
</ul>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

结果:当我点击它,出现的菜单,但它是品牌,而不是.怎么解决?

例子

css twitter-bootstrap

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

Python"a = ab"和"a- = b"真的相同吗?

它似乎a = a-b不同a -= b,我不知道为什么.

码:

cache = {}
def part(word):
    if word in cache:
        return cache[word]
    else:
        uniq = set(word)
        cache[word] = uniq
        return uniq

w1 = "dummy"
w2 = "funny"

# works
test = part(w1)
print(test)
test = test-part(w2)
print(test)
print(cache)

# dont't works
test = part(w1)
print(test)
test -= part(w2) # why it touches "cache"?
print(test)
print(cache)
Run Code Online (Sandbox Code Playgroud)

结果:

set(['y', 'm', 'u', 'd'])
set(['m', 'd'])
{'dummy': set(['y', 'm', 'u', 'd']), 'funny': set(['y', 'n', 'u', …
Run Code Online (Sandbox Code Playgroud)

python

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

使用bash变量在Git中定义core.pager

我想设置core.pager以管理包装文本的长行.为了做到这一点,我使用这个命令:

$ GIT_PAGER="fold -sw $COLUMNS" git log
Run Code Online (Sandbox Code Playgroud)

我试图设置core.pager,但Bash过早评估$ COLUMNS:

$ git config core.pager "fold -sw $COLUMNS"
$ grep pager .git/config
    pager = fold -sw 80
Run Code Online (Sandbox Code Playgroud)

如果我试图逃避$ COLUMNS,我得到:

$ git config core.pager "fold -sw \$COLUMNS"
$ grep pager .git/config
    pager = fold -sw $COLUMNS
$ LC_ALL=en_US git log
fold: option requires an argument -- 'w'
Try 'fold --help' for more information.
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用sh -c我得到:

$ git config core.pager 'sh -c fold -sw $COLUMNS'
$ grep pager .git/config
    pager = sh …
Run Code Online (Sandbox Code Playgroud)

git bash

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