如果我在repo/.git/hooks/post-commit中的本地存储库中创建一个新的钩子脚本然后运行"git push"钩子被推送到远程?然后,当其他开发人员从同一个来源运行"git pull"时,他们会得到我的新钩子吗?
我知道yield将函数转换为生成器,但yield表达式本身的返回值是多少?例如:
def whizbang():
for i in range(10):
x = yield i
Run Code Online (Sandbox Code Playgroud)
x这个函数执行时变量的值是多少?
我已经阅读了Python文档:http://docs.python.org/reference/simple_stmts.html#grammar-token-yield_stmt,似乎没有提到yield表达式本身的值.
当我在Jenkins中运行作业时,每个构建都会给出一个名称,该名称在构建历史记录的UI中显示,基本上是当前的日期和时间.
我希望能够在那里放置构建参数,以便我可以在构建历史中看到构建了哪些分支以及何时构建.
我一直在寻找插件来做到这一点,但我找不到任何插件.有吗?
我的视图代码基本上看起来像这样:
context = Context()
context['my_dict'] = {'a': 4, 'b': 8, 'c': 15, 'd': 16, 'e': 23, 'f': 42 }
context['my_list'] = ['d', 'f', 'e', 'b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)
我想在Django模板中做的是:
<ul>
{% for item in my_list %}
<li>{{ item }} : {{ my_dict.item }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望这输出:
<ul>
<li> d : 16 </li>
<li> f : 42 </li>
<li> e : 23 </li>
<li> b : 8 </li>
<li> c : 15 </li>
<li> a : 4 </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
但是通过变量名称via对dict的引用 …
PyPi现在在1.1.0显示matplotlib所以这个问题已经解决了.通过以下方式安装matplotlib:
pip install matplotlib
PyPi显示了matplotlib 1.0.0.但是,当我通过pip将matplotlib安装到virtualenv时,安装了版本0.91.1.
似乎matplotlib在PyPi上的DOAP记录指向了正确的版本.以下是DOAP记录供参考:
<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>matplotlib</name>
<shortdesc>Python plotting package</shortdesc>
<description>matplotlib strives to produce publication quality 2D graphics
for interactive graphing, scientific publishing, user interface
development and web application servers targeting multiple user
interfaces and hardcopy output formats. There is a 'pylab' mode
which emulates matlab graphics</description>
<download-page>https://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0</download-page>
<homepage rdf:resource="http://matplotlib.sourceforge.net" />
<maintainer><foaf:Person><foaf:name>John D. Hunter</foaf:name>
<foaf:mbox_sha1sum>4b099b4a7f50a1f39642ce59c2053c00d4de6416</foaf:mbox_sha1sum></foaf:Person></maintainer> …Run Code Online (Sandbox Code Playgroud) 我是Django的新手,但我想到的应用程序最终可能会出现如下所示的URL:
http://mysite/compare/id_1/id_2
Run Code Online (Sandbox Code Playgroud)
其中"id_1"和"id_2"是两个不同的Model对象的标识符.在"比较"的处理程序中,我想异步,并行地查询和检索对象id_1和id_2.
有没有办法使用标准的Django语法?我希望伪代码最终看起来像这样:
import django.async
# Issue the model query, but set it up asynchronously.
# The next 2 lines don't actually touch my database
o1 = Object(id=id_1).async_fetch()
o2 = Object(id=id_2).async_fetch()
# Now that I know what I want to query, fire off a fetch to do them all
# in parallel, and wait for all queries to finish before proceeding.
async.Execute((o2,o2))
# Now the code can use data from o1 and o2 below...
Run Code Online (Sandbox Code Playgroud) 举个这样的例子:
class MyForm(forms.Form):
name = forms.CharField()
Run Code Online (Sandbox Code Playgroud)
我试图了解以下两个片段之间的区别是:
"绑定数据"风格:
my_form = MyForm({'name': request.user.first_name})
Run Code Online (Sandbox Code Playgroud)
"初始数据"风格:
my_form = MyForm(initial={'name': request.user.first_name})
Run Code Online (Sandbox Code Playgroud)
文档似乎暗示"初始是动态初始值",但能够将"绑定数据"传递给构造函数完成完全相同的事情.我过去曾使用过初始数据来表示动态值,但我很想使用更简单的"绑定数据"样式,但想了解这两种样式之间真正区别的一些见解.
我想匹配拉丁语块中的所有小写字母形式.平凡的'[az]'只匹配U + 0061和U + 007A之间的字符,而不是所有其他小写形式.
我想匹配所有小写字母,最重要的是,EFIGS语言中使用的拉丁语块中所有带重音的小写字母.
[a-zà-ý]是一个开始,但仍有大量其他小写字符(参见http://www.unicode.org/charts/PDF/U0000.pdf).有推荐的方法吗?
仅供参考我正在使用Python,但我怀疑这个问题是跨语言的.
Python的内置"islower()"方法似乎做了正确的检查:
lower = ''
for c in xrange(0,2**16):
if unichr(c).islower():
lower += unichr(c)
print lower
Run Code Online (Sandbox Code Playgroud) 我正在开发一个简单的Web应用程序,存储一些非规范化数据很有意义.
想象一下跟踪评论的博客平台,BlogEntry模型有一个"CommentCount"字段,我想跟上它的最新状态.
这样做的一种方法是使用Django信号.
另一种方法是将钩子直接放在我的代码中,该代码创建和销毁Comment对象,以同步调用BlogEntry上的某些方法来增加/减少注释计数.
我想还有其他pythonic方法可以用装饰器或其他伏都教来实现这一点.
在Django中进行非规范化的标准设计模式是什么?在实践中,您是否还必须在出现错误时编写一致性检查程序和数据修复程序?
我一直在思考这个问题:
您是否可以利用您拥有多个CPU的优势,在多核计算机上构建更快的基础数据结构(即链表,哈希表,集合,跳转列表,布隆过滤器,红黑树等)?
我做了一些pthreads的初步试验,发现pthread_create()的顺序为30us,但是一个简单的hash_map插入所花费的时间远远少于单个核心.因此,我很难想象创建一个更快的hash_map <>,因为同步原语和线程创建是如此之慢.我还可以想象树的遍历和并行平衡,但同样,同步原语似乎会使运行时更长,而不是更短.
对我来说,我仍然觉得"我有更多的CPU,因此,我应该能够更快地做到这一点",但我无法完全围绕证据或反证据证明这一点.我在C++中进行了相当多的实验,但我现在怀疑其他语言可能会为这项任务提供更好的解决方案(erlang?).思考?
编辑细节:我认为有几种经常使用的编程/数据结构范例可能会加速.例如,我发现自己经常编写基本上看起来像这样的代码(其中实际数据已被"rand()"替换)
static const int N = 1000000;
static const int M = 10000000; // 10x more lookups
hash_map<int, int> m;
// batch insert a bunch of interesting data
for (int i = 0; i < N; i++) m[rand()] = rand();
// Do some random access lookups.
for (int i = 0; i < M; i++) m[rand()]++;
Run Code Online (Sandbox Code Playgroud)
这种范例经常用于名称 - 值设置和配置数据,批处理等等.10x(或更多)查找/插入比率使传统的hash_map <>成为这种操作的理想选择.
这可以很容易地分成两半,具有插入阶段和查找阶段,并且在并行世界中,在两半之间可能存在一些"刷新队列"操作.交错插入+查找版本更难:
hash_map<int, int> m;
for (int i = 0; i < N; i++) {
if …Run Code Online (Sandbox Code Playgroud)