小编Han*_*Sun的帖子

什么时候应该在子进程中使用`wait`而不是`communic`?

在等待文档(http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait)中,它说:

警告

当使用stdout = PIPE和/或stderr = PIPE并且子进程为管道生成足够的输出以阻止等待OS管道缓冲区接受更多数据时,这将会死锁.使用communic()来避免这种情况.

由此,我认为communicate可以取代所有使用wait()如果retcode是不需要.甚至当stdoutstdin没有管,我也可以代替wait()通过communicate().

是对的吗?谢谢!

python subprocess pipe wait communicate

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

为什么2 .__添加__(3)不能在Python中工作?

整数2有一个__add__方法:

>>> "__add__" in dir(2)
True
Run Code Online (Sandbox Code Playgroud)

...但是调用它会引发一个SyntaxError:

>>> 2.__add__(3)
  File "<stdin>", line 1
    2.__add__(3)
            ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

为什么我不能使用这个__add__方法?

python methods int syntax-error

14
推荐指数
2
解决办法
480
查看次数

为什么`$(document)=== $(document)`在jQuery中返回false?

我试过$(document) === $(document)但发现结果是false......

有没有人有这个想法?

javascript jquery operators comparison-operators

14
推荐指数
4
解决办法
437
查看次数

Haskell中的do-notation变量的类型是什么?

以下代码非常清楚:

do 
  x <- Just 3
  y <- Just "!"
  Just (show x ++ y)
Run Code Online (Sandbox Code Playgroud)

这里的类型xNumyString.(<-这里用来取出Monad的实际价值)

但是,这个片段对我来说不太清楚:

import Control.Monad.Instances
addStuff :: Int -> Int
addStuff = do
  a <- (* 2)
  b <- (+ 10)
  return (a + b)
Run Code Online (Sandbox Code Playgroud)

这里有什么类型a和类型b?他们似乎像一个Num,但a <- (* 2)b <- (+ 10)这里看上去很神秘,...

有没有人有这个想法?

monads haskell functional-programming do-notation

13
推荐指数
2
解决办法
391
查看次数

为什么"z-index"不适用于具有变换的元素:translateY()

以下是片段:

.up {
  background-color: red;
  height: 100px;
  z-index: 100;
}
.down {
  background-color: yellow;
  height: 100px;
  width: 50%;
  margin: 0 auto;
  z-index: 1;
  transform: translateY(-50%);
}
Run Code Online (Sandbox Code Playgroud)
<div class="up"></div>
<div class="down"></div>
Run Code Online (Sandbox Code Playgroud)

如可以看到的,该.up元件具有较高的z-index.down元件.但是,.down元素仍然.up以某种方式位于元素的前面.

有没有人有这个想法?如何解决这个问题?

html css html5 transform css3

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

为什么这个CSS片段会绘制三角形?

我看到以下代码没有任何评论..

.triangle {
    border-color: transparent;
    border-bottom-color: green;
    border-style: solid;
    border-width:  300px;
    border-top-width:0;
    height: 0;
    width: 0
}
Run Code Online (Sandbox Code Playgroud)
<div class="triangle"></div>
Run Code Online (Sandbox Code Playgroud)

结果是一个绿色三角形.有没有人有关于它为什么有效的想法?

css css-shapes

12
推荐指数
2
解决办法
317
查看次数

为什么这个未绑定的变量可以在Python(pyquery)中工作?

代码来自pyquery的指南

from pyquery import PyQuery
d = PyQuery('<p class="hello">Hi</p><p>Bye</p>')
d('p').filter(lambda i: PyQuery(this).text() == 'Hi')
Run Code Online (Sandbox Code Playgroud)

我的问题是this在第3行是一个未绑定的变量,并且从未在当前环境中定义,但上述代码仍然有效.

它怎么样?为什么不抱怨NameError: name 'this' is not defined

似乎有事情发生在https://bitbucket.org/olauzanne/pyquery/src/c148e4445f49/pyquery/pyquery.py#cl-478,有人可以解释一下吗?

python variables pyquery

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

用相同的数字填充一个numpy数组?

我知道如何在100个元素数组中填充零:

np.zeros(100)
Run Code Online (Sandbox Code Playgroud)

但如果我想用9填充呢?

numpy

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

找到Python最长重复字符串的有效方法(From Programming Pearls)

摘自编程珍珠第15.2节

可在此处查看C代码:http://www.cs.bell-labs.com/cm/cs/pearls/longdup.c

当我使用suffix-array在Python中实现它时:

example = open("iliad10.txt").read()
def comlen(p, q):
    i = 0
    for x in zip(p, q):
        if x[0] == x[1]:
            i += 1
        else:
            break
    return i

suffix_list = []
example_len = len(example)
idx = list(range(example_len))
idx.sort(cmp = lambda a, b: cmp(example[a:], example[b:]))  #VERY VERY SLOW

max_len = -1
for i in range(example_len - 1):
    this_len = comlen(example[idx[i]:], example[idx[i+1]:])
    print this_len
    if this_len > max_len:
        max_len = this_len
        maxi = i
Run Code Online (Sandbox Code Playgroud)

我发现这idx.sort一步很慢.我认为它很慢,因为Python需要通过值而不是指针传递子串(如上面的C代码).

测试文件可以从这里 …

c python suffix-tree suffix-array programming-pearls

11
推荐指数
3
解决办法
4811
查看次数

在Elixir/Erlang中,哪个端口用于`Node.connect`?

可以使用以下方法通过iex初始化Elixir节点:

iex --sname node1@10.99.1.50 --cookie foo
Run Code Online (Sandbox Code Playgroud)

然后另一个可以使用以下命令在REPL中连接此节点:

Node.connect(:"node1@10.99.1.50")
Run Code Online (Sandbox Code Playgroud)

似乎连接是通过TCP协议.但是,我没有在文档中找到一个参数来指定使用哪个端口.有没有人对此有任何想法?

erlang elixir erlang-otp

11
推荐指数
2
解决办法
1492
查看次数