这与=Python代码中每隔一次出现的推荐空格不一致吗?
怎么:
func(1, 2, very_long_variable_name=another_very_long_variable_name)
Run Code Online (Sandbox Code Playgroud)
优于:
func(1, 2, very_long_variable_name = another_very_long_variable_name)
Run Code Online (Sandbox Code Playgroud)
记住,这个问题更多的是关于kwargs而不是默认值,我只是使用了PEP 8中的措辞.
我不是在征求意见.我在问这个决定背后的原因.这更像是问我为什么要在C程序中使用{与if语句相同的行,而不是我是否应该使用它.
我在一个在线论坛上发现了这个问题:真的对如何解决这个问题感兴趣:
给定正整数的数组A. 以最低成本将其转换为排序数组.唯一有效的操作是:
1)减少成本= 1
2)使用cost = value of element从数组中完全删除元素
这是一家面向技术公司的面试问题
for imgsrc in Soup.findAll('img', {'class': 'sizedProdImage'}):
if imgsrc:
imgsrc = imgsrc
else:
imgsrc = "ERROR"
patImgSrc = re.compile('src="(.*)".*/>')
findPatImgSrc = re.findall(patImgSrc, imgsrc)
print findPatImgSrc
'''
<img height="72" name="proimg" id="image" class="sizedProdImage" src="http://imagelocation" />
Run Code Online (Sandbox Code Playgroud)
这就是我想从中提取的内容,我得到了:
findimgsrcPat = re.findall(imgsrcPat, imgsrc)
File "C:\Python27\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)
"""
我知道这种形式:
var foo = function bar() {};
Run Code Online (Sandbox Code Playgroud)
将bar名称泄漏到封闭范围并创建两个函数jscript.
怎么样:
var foo = function foo() {};
Run Code Online (Sandbox Code Playgroud)
?
它仍然将名称泄漏到封闭范围,但无论如何它都在那里(thx to var foo).
我知道它将在整个范围内定义,但它会创建两个函数并立即取消引用/销毁其中一个或者这仍然导致泄漏吗?
在这种情况下:
var bar = function() {
foo();
var foo = function foo() {};
}
Run Code Online (Sandbox Code Playgroud)
我们里面会有两个函数对象bar()吗?
编辑
好吧,它肯定会创建两个函数对象,现在的问题是:命名定义创建的函数是否var foo在行之后被GC解除引用并清除,因此foo在上面的代码中,任何时刻都只有一个"实时" 实例?
或IE将IE永远悬空,因为没有办法"解除引用" foo定义创建的内容,它甚至不应该首先出现在那里?
我正在尝试使用start-stop-daemon启动python脚本:
sudo /sbin/start-stop-daemon --start --pidfile /home/loop.pid \
--user www-data --group www-data -b --make-pidfile --chuid www-data \
--exec /usr/bin/python /home/loop.py --verbose
Run Code Online (Sandbox Code Playgroud)
但我的进程中没有python脚本.我做错了什么?
loop.py:
import time
while True:
print "working..."
time.sleep(3)
Run Code Online (Sandbox Code Playgroud) 似乎来自random-fu包的MonadRandom不是Functor,因为我得到的错误如下:
Could not deduce (Functor m) arising from a use of ‘_1’
from the context (MonadRandom m)
Run Code Online (Sandbox Code Playgroud)
我尝试添加以下代码:
instance Functor MonadRandom where
fmap = liftM
instance Applicative MonadRandom where
pure = return
(<*>) = ap
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
The first argument of ‘Functor’ should have kind ‘* -> *’,
but ‘MonadRandom’ has kind ‘(* -> *) -> Constraint’
In the instance declaration for ‘Functor MonadRandom’
The first argument of ‘Applicative’ should have kind ‘* -> *’,
but ‘MonadRandom’ has kind ‘(* -> …Run Code Online (Sandbox Code Playgroud) 如果我有一个继承自另一个类的类,并且只有这个类必须使用某个变量,这是更好的做法吗?让所述变量在基类中被"保护",或者将其变为私有并为其提供受保护的getter?
我听说过相互矛盾的事情.我的老师告诉我总是使用吸气剂,而其他人告诉我,在任何级别使用吸气剂都会发现糟糕的程序设计.真正的答案是什么?我觉得两者都是不合逻辑的极端.
另外,如果getter和setter是糟糕的程序设计,为什么呢?
是否有任何资源可以教会我如何构建代码?
假设我有一个类X,我如何检查哪个是基类/类,以及它们的基类/类等?
我正在将Eclipse与PyDev一起使用,例如对于Java,您可以在类名称上键入CTRL + T并查看层次结构,如:
java.lang.Object
java.lang.Number
java.lang.Integer
Python有可能吗?
如果在Eclipse PyDev中不可能,我在哪里可以找到这些信息?
我正在通过labrepl工作,我看到了一些遵循这种模式的代码:
;; Pattern
(apply #(apply f %&) coll)
;; Concrete example
user=> (apply #(apply + %&) [1 2 3 4])
10
Run Code Online (Sandbox Code Playgroud)
这似乎等同于这种模式:
;; Pattern
(apply f coll)
;; Concrete example
user=> (apply + [1 2 3 4])
10
Run Code Online (Sandbox Code Playgroud)
这些模式是否相同?如果没有,有什么区别,你何时会使用另一个?
我从labrepl的细胞自动机实验室的step函数中采用了前一种模式:
(defn step
"Advance the automation by one step, updating all cells."
[board]
(doall
(map (fn [window]
(apply #(apply map brians-brain-rules %&)
(doall (map torus-window window))))
(torus-window board))))
Run Code Online (Sandbox Code Playgroud)
更新:我添加了每个模式的具体示例,以帮助使问题更清晰.
我发现这有点令人困惑.我认为scala中的future是一次设置的不可变容器,总是返回相同的值.
所以我有一个未来:
val y = future {Thread.sleep(1000); 1};
Run Code Online (Sandbox Code Playgroud)
现在,当我立即(在未来解决之前)将其传递给Await.result阻止两次:
Await.result(for (r1 <- y; r2 <- y) yield (r1, r2), 60 seconds)
Run Code Online (Sandbox Code Playgroud)
我得到了TimetoutException.
但是,如果我在未来解决后这样做,一切正常并按(1,1)预期返回.
这种行为的原因是什么?
编辑:我正在使用隐式ExecutionContext.Implicits.global和scala.concurrent@scala 2.10.3
编辑2:如果我创建另一个未来的实例做同样的事情,并对它们做Await.result它都不会阻止.
python ×4
algorithm ×1
c++ ×1
class ×1
clojure ×1
coding-style ×1
concurrency ×1
cron ×1
haskell ×1
hierarchy ×1
inheritance ×1
javascript ×1
jscript ×1
monads ×1
oop ×1
pep8 ×1
pydev ×1
scala ×1
sorting ×1