欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → vba接收python返回array的一个大bug

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2379人关注过本帖树形打印复制链接

主题:vba接收python返回array的一个大bug

帅哥哟,离线,有人找我吗?
netwalker
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:30 威望:0 精华:0 注册:2013/3/7 22:50:14
vba接收python返回array的一个大bug  发帖心情 Post By:2021/4/13 11:36:47 [只看该作者]

vbs 在 drawTrend分别调用python的 tzero_index和tzero_price方法,取得走势起点和终点的index和price,然后画线

vbs代码

sub drawTrend(i)
Set Grid = Technic.GetGridByName("Main")
Set tzero_index = CreateObject("Stock.Array")
Set tzero_price = CreateObject("Stock.Array")
set tzero_index = py.CallObject("tzero_index",0) 
If IsEmpty(tzero_index) Then
Msg = py.GetErrorInfo()
Application.MsgOut Msg
Set Msg = Nothing   '使用完毕需要 Set Nothing销毁以免出现内存泄漏
Exit Sub
End If

set tzero_price = py.CallObject("tzero_price",0) 
If IsEmpty(tzero_price) Then
Msg = py.GetErrorInfo()
Application.MsgOut Msg
Set Msg = Nothing   '使用完毕需要 Set Nothing销毁以免出现内存泄漏
Exit Sub
End If
tmp_count=tzero_index.Count-2
out tmp_count
for i=0 to tmp_count
start_index=tzero_index.GetAt(i)
out "start:" & start_index & ",end:" & cstr(tzero_index.GetAt(i+1))
next

end Sub

python代码

def tzero_index(i):
    #print("i:{},type:{}".format(i,type(i)))
    global kcm
    tdm = kcm.gms[i].tdm
    p_index = tdm.start_index
    p_index.append(tdm.end_index[-1])
    print(p_index)
    return p_index
    
    
def tzero_price(i):
    global kcm
    tdm = kcm.gms[i].tdm
    p_price = tdm.start_price
    p_price.append(tdm.end_price[-1])
    #print(p_price)
    return p_price 

当调用tzero_index.getat方法时,读的是tzero_price的数据。
试了一下,如果我只调用python的tzero_index方法,就可以正确读出数据。

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2021-04-13_11-35-55.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/4/13 13:10:20 [只看该作者]

我这样美哟问题,返回的你看下呢
图片点击可在新窗口打开查看此主题相关图片如下:{6dd8hj{1834av}f7%v20g.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
netwalker
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:30 威望:0 精华:0 注册:2013/3/7 22:50:14
  发帖心情 Post By:2021/4/13 15:16:36 [只看该作者]

试一下两个方法传进去的是array,传出来的也是array看看?

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/4/13 17:06:10 [只看该作者]

创建两个对象分别去引用
图片点击可在新窗口打开查看此主题相关图片如下:jy6u96c{)x8`idjj`}@yiuu.png
图片点击可在新窗口打开查看

 回到顶部