我希望能够在拟合预测模型的同时抑制来自 fbprophet 的一些输出。此输出(“初始对数联合概率...”、“优化正常终止:”、“检测到收敛:...”等)显然来自 Stan 的 cpp 代码,我找不到任何明显的方法来控制它[我正在使用 python 接口]。深入研究代码发现,verbose=False 作为高级 stan() 例程(在 pystan/api.py 中)中的默认值,但显然此参数不会抑制此打印输出。不修改代码是否可行?
为什么Python eval不能在函数内部工作?相同的eval(compile(cmd))代码在全局环境中工作,但在foo函数内部不起作用.
简单的例子:
fn = '/tmp/tmp'
mode = 'single'
def foo(cmd, fn, mode):
eval(compile(cmd, fn, mode)) # <<< this does not work
print 'foo: cmd=', cmd
print 'foo: x=', x
cmd = "x = 1"
eval(compile(cmd, fn, mode)) # <<< this works
print 'global scope: cmd=', cmd
print 'global scope: x=', x
del(x)
foo('x = 9', fn, mode)
Run Code Online (Sandbox Code Playgroud)
这是输出和错误消息:
global scope: cmd= x = 1
global scope: x= 1
foo: cmd= x = 9
foo: …Run Code Online (Sandbox Code Playgroud)