# SetKey 方法
CallObject(LPCTSTR Name, ...)
调用Python模块函数。
返回值: 成功返回 int float string Array 值,失败返回 Empty 空值。注意:当返回值为 string 类型时,使用完毕需要 Set Nothing销毁以免出现内存泄漏。字符串最大字节数 12 K。
参数
参数 | 说明 |
---|---|
Name | 函数名(注意区分大小写) |
... | 参数序列,参数值类型只能是 int float string Array 这4种类型,最多16个参数, 其中 string 类型参数最大字节数56个;其中Array是外部对象。 |
示例
'下列代码传参类型为Array外部对象
Sub Test()
Dim d1 '创建一个变量
'创建Array外部对象,将对象实例置变量d1中
Set d1 = CreateObject("Stock.Array")
d1.AddBack(1)
d1.AddBack(2)
'创建外部对象,启用Python引擎
Set d = CreateObject("Stock.Python")
'载入Python模块,模块名为MyPython
ret = d.ImportModule("MyPython ")
If ret <> 1 Then
'载入失败,打印错误原因
Msg = d.GetErrorInfo()
Application.MsgOut Msg
Set Msg = Nothing '使用完毕需要 Set Nothing销毁以免出现内存泄漏
Exit Sub
End IF
'调用Python模块函数,函数名pytestmodule,参数为Array外部对象d1
Data = d.CallObject("pytestmodule",d1)
If IsEmpty(Data) Then
Msg = d.GetErrorInfo()
Application.MsgOut Msg
Set Msg = Nothing '使用完毕需要 Set Nothing销毁以免出现内存泄漏
Exit Sub
End If
'打印返回值
application.MsgOut "Result:"&Data
Set d = nothing '使用完毕需要 Set Nothing销毁以免出现内存泄漏
set d1 = nothing '使用完毕需要 Set Nothing销毁以免出现内存泄漏
end Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
其中Python “MyPython”模块代码:
from PythonApi import *
import numpy as np
def pytestmodule(par1):
a1 = np.array(par1)
return np.sum(a1)
1
2
3
4
5
2
3
4
5
应用于