搜索
查看: 676|回复: 1
打印 上一主题 下一主题

调用python模块后的返回值如何读取?

[复制链接]

7

主题

14

帖子

99

积分

一级会员

Rank: 2

积分
99
跳转到指定楼层
楼主
发表于 2018-7-27 22:39:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,刚刚看到是范例中关于python的一个程序,有点凝问想请教一下。

  1. //4)调用aardio
  2. import console;
  3. import py2;

  4. /*
  5. 导出一个名字为"aardio"的模块,
  6. 在python中可以使用 import aardio导入。

  7. 可以使用此方法导出任何其他的aardio表,Python中可以访问导出表中的成员函数,
  8. 除函数以外的成员不导出,但是可以在被调用函数中用owner对象访问自身的其他成员变量。
  9. */
  10. py2.export.aardio ={
  11.        
  12.         c = 456;
  13.         test = function(a,b){
  14.                 ..console.log( "aardio函数被python调用了"  );
  15.                 return a + b + owner.c;
  16.         }

  17. }

  18. var pyCode = /**
  19. import aardio
  20. def testPy():
  21.     return aardio.test(12,2)
  22. **/

  23. py2.exec( pyCode )
  24. console.log( py2.main.testPy() );

  25. console.pause()
复制代码


我发现程序中,py2.main.testPy()的返回值470,并不能直接用来加减。之后用 console.varDump(py2.main.testPy()) 查看,发现他的返回值是一个表。

参数位置:1
数据类型:table
变量值: {
    _gc = cdata: 01E97BE8
    pyObject = pointer: 02341E18
}

那么,这个返回值要如何利用呢?为何console.log又能显示470呢?

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
沙发
发表于 2018-7-27 22:46:06 | 只看该作者
范例文档里都已经准备好了答案:
Python返回的值都是py.object,
tostring(pyObject)转为字符串,tonumber(pyObject)转为数值
console.log()已经自动调用 tostring(pyObject)
这些基础的东西,用以前可以先看一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-24 06:37 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表