我@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) 我正在使用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
.有任何想法吗?
如果您在http://twitter.github.com/bootstrap/examples/carousel.html上减少窗口浏览器宽度,则可以看到背景图像宽高比发生变化.我想保持它(1:1),在左边或右边裁剪我的图像,或者水平对齐它.
你有什么建议?
在你认为它是重复的之前(有许多问题要求如何分割长字符串而不破坏单词)请记住我的问题有点不同:顺序并不重要我应该使用单词以便使用每一行越多越好.
我有一组无序的单词,我希望在不使用超过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) 今天我决定将我的基于 的小脚本转换gst-launch
为真正的Python/GStreamer 应用程序,以添加一些功能。
我开发了一个小程序,它将音频从我的麦克风发送到 Icecast ( shout2send
) 和本地存储 ( filesink
),这要归功于tee
.
有时shout2send
会因网络问题而停止。我想每 N 秒重新启动一次此元素,直到连接恢复,而不停止管道,因为本地音频文件不应受到网络条件的影响。
这是我尝试过的:
tee
,将shout2send
状态设置为NULL
并将其从管道中删除(结果:GStreamer 严重错误,例如Trying to dispose element ... but it is in PLAYING instead of the NULL state
)我应该怎么办?
我的代码如下所示:
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) 我想在每次点击导航栏的品牌时打开一个下拉菜单(使用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)
结果:当我点击它,出现的菜单,但它是在品牌,而不是下.怎么解决?
div class="brand"
[样式问题]:http://jsfiddle.net/4rdPU/1/它似乎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) 我想设置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) python ×4
css ×2
algorithm ×1
bash ×1
django ×1
git ×1
gstreamer ×1
memoization ×1
python-3.x ×1
string ×1