A:有些公用模型中,为了提示进度或其它特殊情况,会有一些echo提示信息打印出来。
而在pyTSL模块调用这类模型时,也会在python打印窗口中进行打印,有时提示太多反而会影响关键信息的查看,此时就希望能关掉这些自带的打印提示。
在天软中借助SetEchoString/UnsetEchoString的设置,将打印输出进行重新定向,不再到终端进行输出。
具体功能可参考:FAQ:
Q:如何取消公用函数中的打印信息
借助此功能,在python中调用实现如下:
范例:不打印提示信息
示例中主要展示了call方式的重定向使用,exce方式也是如此,只需要将需要屏蔽的过程放到SetEchoString方法与UnsetEchoString方法之间,最后再return即可。
import datetime
import pyTSL as ts
c=ts.Client("username","password","tsl.tinysoft.com.cn",443)
rt=c.login()
print(c.last_error())
tsl_code ='''
function getCB_ImpliedVolatility(stockid,endt);
begin
SetEchoString(); //设置重新定向,不再输出打印信息
setsysparam(pn_stock(),stockid);
setsysparam(pn_date(),endt);
CBIm:=CB_ImpliedVolatility(nil,nil,out_ret);
eS:= UnSetEchoString();//将重新定向的信息返回到eS中,并取消重新定向设置
return CBIm;
end;
'''
r = c.call("getCB_ImpliedVolatility","SH110059",datetime.date(2025,6,23),code=tsl_code)
if r.error(): # 有错误打印报错信息
print(r.message())
else:
data = r.value() # 打印结果
print(data)
运行结果对比展示:
