我有一个函数,运行时间不会太长。我想为其设置一个超时限制。我可以在互联网上找到一种建议的解决方案。请参阅以下 SO 帖子。函数调用超时
该解决方案使用信号,这在 Windows 上不可用。信号也有类似的用途来制作自动收报机,它有一个 Windows 端口,如这篇 SO 帖子中所解释的:python:windows 相当于 SIGALRM这不是直接超时的答案,但可以适应超时。它是为 python 2.7 编写的。
由于答案大约有 10 年历史,我的问题是:是否有更现代的 python(例如 python 3.7)方法来创建上下文管理器/装饰器/类似包装器,将“普通函数”制作为超时限制函数视窗系统?
我使用以下代码段创建了一个热图:
import numpy as np
import matplotlib.pyplot as plt
d = np.random.normal(.4,2,(10,10))
plt.imshow(d,cmap=plt.cm.RdBu)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
现在,由于数据的中间点不是 0,因此颜色图值为 0 的单元格不是白色,而是略带红色。
如何强制颜色图使 max=blue、min=red 和 0=white?
拥有powershell脚本的背景我首先想到以管道方式思考函数组合是很自然的.这意味着组合的语法应该是fun1 | fun2 | fun3一种psudocode方式.("按顺序应用fun[i]的i'功能在哪里).这个函数的顺序也是你在haskell monadic绑定中找到的.fun1 >>= fun2 >>= fun3.
但是在haskell的其他场合,函数的顺序更像是数学,例如fun3 . fun2 . fun1,或者在函数设置中fmap fun3 . fmap fun2 . fmap fun1.
我非常清楚这些函数在两个例子中有不同的签名,但令我感到困惑的是,结构仍然是相反的.我的解决方法是有时定义一个mmap = flip (>>=)我可以编写的函数mmap fun3 . mmap fun2 . mmap fun1.
那么问题是:
mmap定义?叫什么叫?wget我正在尝试在 powershell 中使用( 的别名)下载页面Invoke-WebRequest。有问题的页面是www.privatahyresv\xc3\xa4rdar.nu.
使用 Internet Explorer 时,我可以导航到,www.privatahyresv\xc3\xa4rdar.nu但无法从 powershell 运行 wget,也无法ping该站点。这两个命令都无法解析主机名。
我遵循了 SO 和其他网站上关于使用代理作为错误源的建议wget失败错误源的评论的一些建议,但我没有使用任何代理。
请帮我找出错误源!
\n我想编写一个打字稿函数,以函数方式将函数重复 n 次给参数。递归在我看来是一个很好的建议。
我对香草 ES 的尝试如下。
const repeat = f => times => arg => {
if(times <= 0) {
return arg;
} else {
const val = repeat(f)(times-1)(f(arg))
return val;
}
}
Run Code Online (Sandbox Code Playgroud)
我在注释类型方面的最佳尝试没有通过编译。
const repeat = <T>(f: T=>T) => (times: number) => (arg: T) => {
if(times <= 0) {
return arg;
} else {
const val: T = repeat(f)(times-1)(f(arg))
return val;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 遵循@arpl 的建议,但没有编写单独的接口,我在下面解决了。“ret”的单独定义是为了允许正确推断返回类型。
const repeat = <T>(f: (a: T)=>T) => (t: number) => (a: T) …Run Code Online (Sandbox Code Playgroud) colormap ×1
dns ×1
functor ×1
haskell ×1
matplotlib ×1
monads ×1
powershell ×1
proxy ×1
python ×1
python-3.x ×1
timeout ×1
typescript ×1
url ×1
windows ×1