我需要调用方法f
.如果它引发了IOError
,我需要再次调用它(重试),并且最多执行三次.我需要记录任何其他异常,我需要记录所有重试.
下面的代码执行此操作,但它看起来很难看.请帮我把它变得优雅和pythonic.我使用的是Python 2.7.
谢谢!
count = 3
while count > 0:
try:
f()
except IOError:
count -= 1
if count > 0:
print 'retry'
continue
except Exception as x:
print x
break
Run Code Online (Sandbox Code Playgroud) 我有一个画有图像的画布.
当用户点击图像时,我需要找到用户点击的颜色区域.区域被定义为一组4向连接像素,其颜色与单击的像素相同.
我需要一个可以用来在画布上设置剪切路径的形式的区域,这样我就可以用渐变等填充区域.
是否有找到边界的有效算法?比洪水填充算法更优化(我不需要填充,我只需要在我的区域找到一条路径).
下面的代码(以及这里:http://jsbin.com/oseruc/1)在每次单击鼠标时翻转给定的图像.它可以在我可以测试的所有浏览器中正常工作,除了最新的Firefox.Firefox显示错误,例如:
Image corrupt or truncated: http://upload.wikimedia.org/wikipedia/commons/0/0c/St._Cristopher-D%C3%BCrer.jpg
Image corrupt or truncated: http://upload.wikimedia.org/wikipedia/commons/0/0c/St._Cristopher-D%C3%BCrer.jpg
Image corrupt or truncated: Rhinoceros.jpg">http://upload.wikimedia.org/wikipedia/commons/b/b9/D%C3%BCrer-_Rhinoceros.jpg
Image corrupt or truncated: http://upload.wikimedia.org/wikipedia/commons/0/0c/St._Cristopher-D%C3%BCrer.jpg
Image corrupt or truncated: Rhinoceros.jpg">http://upload.wikimedia.org/wikipedia/commons/b/b9/D%C3%BCrer-_Rhinoceros.jpg
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript"> (function (window) { var frames = [ "http://upload.wikimedia.org/wikipedia/commons/6/65/Duerer_%28Marter_der_zehntausend_Christen%29.jpg", "http://upload.wikimedia.org/wikipedia/commons/0/0c/St._Cristopher-D%C3%BCrer.jpg", "http://upload.wikimedia.org/wikipedia/commons/b/b9/D%C3%BCrer_-_Rhinoceros.jpg" ];
window.onload = function () { var frame_num = 0; var image = document.getElementById("image");
image.onclick = function () { frame_num = (frame_num + 1) % frames.length; …
有谁知道Safari是否支持crossorigin
HTML5 <video>
标签的属性?我从服务器提供视频,响应所有需要的CORS标头,我使用下面的标记将视频嵌入到我的页面.该页面来自不同的域.
API 从画布中获取图像.这适用于Chrome和Firefox,但Safari会抛出安全错误,就好像
<video controls crossorigin="anonymous" src="http://example.com/movie.mp4">
toDataURL
视频中没有属性一样.
有任何想法吗?
Haskell的Prelude有一个有用的函数来交换函数的参数:http://zvon.org/other/haskell/Outputprelude/flip_f.html
我需要在Ruby中做同样的事情.我不想仅仅定义一个自定义方法,而是想修补这个Proc
类,以便我可以flip
一起使用Proc#curry
.就像是
f = lambda {|x, y| [x, y]}
g = f.flip.curry.(2)
Run Code Online (Sandbox Code Playgroud)
为...提供价值y
.
我不知道如何重新开课Proc
.
我需要迭代一个数组并将一个提供的块应用于每个元素,并返回该块返回的第一个真值,这意味着我需要在获得真值后立即停止.
下面是我的代码.我是一个红宝石新手,我不确定这个代码是否重新发明轮子.也许有一种库方法或方法可以做到这一点?或者这个代码可以简化?
RS = {
:x => %w(\d+ a\d+ bb\d+ ccc\d+).map{|x| /^#{x}$/},
:y => %w(\w+ 1\w+ 22\w+ 333\w+).map{|x| /^#{x}$/}
}.freeze
def find s, t
r = RS[s]
if r
r.each do |p|
m = p.match t
return m if m
end
nil
end
end
p find :x, 'bb12345'
Run Code Online (Sandbox Code Playgroud) 我创建了一个数组(在 Chrome 的控制台中)
a = [1, 2, 3];
// [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
然后分配
a[-1] = 123;
// 123
Run Code Online (Sandbox Code Playgroud)
这不会引发任何错误,但结果数组不会更改:
a
// [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
但我可以-1
成功读取该属性:
a[-1]
// 123
Run Code Online (Sandbox Code Playgroud)
索引如何与 Javascript 数组一起工作?为什么它不显示我添加的新值?显然它把它当作财产。为什么?
这是关于编程风格和常见实践的更多问题.但我觉得它不适合代码审查论坛......
我的程序解析正则表达式并处理它们.正则表达式可以包含常用元素(Kleene闭包,连接等),它也可以通过名称引用其他正则表达式,如宏:
data Regex a = Epsilon
| Literal a
| Ranges [(a, a)]
| Ref String
| Then (Regex a) (Regex a)
| Or (Regex a) (Regex a)
| Star (Regex a)
Run Code Online (Sandbox Code Playgroud)
我处理正则表达式,并解决所有宏引用,并转换后Literal
的元素Range
元素(这是需要我的目的),我最终能够也不应该有型Ref
和Literal
,所以在我的功能与它的工作我做就像是:
foo (Literal _) = error "unexpected literal"
foo (Ref _) = error "unexpected reference"
foo (Epsilon) = ...
foo (Star x) = ...
...
Run Code Online (Sandbox Code Playgroud)
这看起来很难看,因为它在编译期间执行运行时检查而不是检查.不是一种非常类似的方法.
那么也许我可以引入另一种与原始数据非常相似的数据类型并使用它?
data RegexSimple a = Epsilon2
| Ranges2 [(a, a)]
| Then2 (Regex …
Run Code Online (Sandbox Code Playgroud) 我有一个大型数据库,里面有一系列机构(大学,医院等).机构的名称来自不同的来源,并且对于同一机构可以拼写不同.例如,它们可能拼写错误,或者可以缩短单词("uni","univ"或"university")
给定一个我需要插入数据库的名称,有没有一种实用的方法来查找该机构是否已经在数据库中?这不是一个研究项目,所以我正在寻找一个相当快的解决方案.
我正在使用django和postgresql,但我认为并不重要.
我的RESTful API返回一个数组:
GET /test => [1367297123312,1.0,2.0,3.0,100]
Run Code Online (Sandbox Code Playgroud)
我有一个服务:
(angular
.module('app.services', ['ng', 'ngResource'])
.factory('myData', [
/******/ '$resource',
function ($resource) {
return $resource('test');
}])
);
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我需要得到数字.我试过了:
(angular
.module('app.controllers', ['ng', 'app.services'])
.controller('tweetsapiContr', [
/******/ '$scope', 'myData',
function ($scope, myData) {
myData.get({}, function (data) {
console.log(data);
};
}
])
);
Run Code Online (Sandbox Code Playgroud)
上面给我TypeError: Object #<h> has no method 'push'
的错误,如果我用query
,而不是get
在服务,它返回有类似的方法对象的数组$get
,$save
等等,但调用$get
例如回报undefined
.
如何获得数字?从服务器响应哈希工作,但我试图弄清楚如何使它与数组一起工作.
javascript ×4
haskell ×2
python ×2
ruby ×2
angularjs ×1
canvas ×1
cors ×1
database ×1
django ×1
firefox ×1
fuzzy-search ×1
html5 ×1
html5-video ×1
postgresql ×1
safari ×1