搜索
查看: 578|回复: 4

python3 参数传递的问题

[复制链接]

1

主题

2

帖子

12

积分

新手入门

Rank: 1

积分
12
发表于 2018-6-27 07:26:20 | 显示全部楼层 |阅读模式


简单的python代码,传递参数是正确的
  1. import console
  2. import py;
  3. console.open();

  4. var pyCode = /**

  5. import random

  6. def get_names(a):
  7.         c = a + 1
  8.         return c
  9. **/
  10. string.save("/name.py",pyCode)


  11. var name = py.import("name");

  12. var tab = name.get_names(2)
  13. console.log(tab)
  14. console.dump(tab)

  15. console.pause()
复制代码



但是,用下面这段代码,传递参数又不正确了
  1. import console
  2. import py;
  3. console.open();

  4. var pyCode = /**

  5. import random

  6. def get_names(a):
  7.         list = [1, 2, 3]
  8.         c = random.sample(list, a)
  9.         return c
  10. **/

  11. string.save("/name.py",pyCode );//创建一个创建的模块文件

  12. var name = py.import("name");

  13. var tab = name.get_names(2)
  14. //tab.parseValue()
  15. console.dump(tab)
  16. console.dump(tab)
  17. //tab.parseValue()

  18. console.log(tab.parseValue());


  19. console.pause()
复制代码


而如果把这段代码不用参数,直接在python里用固定的数字则可以正确运行。

  1. import console
  2. import py;
  3. console.open();

  4. var pyCode = /**

  5. import random

  6. def get_names():
  7.         list = [1, 2, 3]
  8.         c = random.sample(list, 2)
  9.         return c
  10. **/

  11. string.save("/name.py",pyCode );//创建一个创建的模块文件

  12. var name = py.import("name");

  13. var tab = name.get_names()
  14. //tab.parseValue()
  15. console.dump(tab)
  16. console.dump(tab)
  17. //tab.parseValue()

  18. console.log(tab.parseValue());


  19. console.pause()
复制代码

不知是哪里出了问题,请各位老师指正
回复

使用道具 举报

10

主题

82

帖子

666

积分

三级会员

Rank: 4

积分
666
发表于 2018-6-27 09:20:46 | 显示全部楼层
c = random.sample(list, a) 不认得 a,返回的就是null
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-6-27 09:24:56 | 显示全部楼层
有时间写这么长的帖子,
不能先看一下 Python基础语法吗 ?!

一个简单的try语句然后输出错误原因你就知道怎么解决了。python问题python里解决,不要舍近求远。
import console;
import py;

var pyCode = /**
import random

def get_names(a):
    try:
        list = [1, 2, 3]
        c = random.sample(list,int(a) )
        return c
    except Exception as e:
        return e;
**/


string.save(
"/name.py",pyCode );//创建一个创建的模块文件
var name = py.import("name");

var tab = name.get_names(2)
console.log(tab);

console.pause();
1、Python不支持类型自动转换。
2、Pyhton里应当到处写满 try  语句保平案。


回复

使用道具 举报

4

主题

63

帖子

478

积分

二级会员

Rank: 3Rank: 3

积分
478
发表于 2018-6-27 09:46:13 | 显示全部楼层
参考管理员的例子和python中的函数参数类型要求,可以测试出aardio传入的参数为float类型,而该函数的参数要求为int类型,因为非int类型导致报错,所以返回值为null。
回复

使用道具 举报

1

主题

2

帖子

12

积分

新手入门

Rank: 1

积分
12
 楼主| 发表于 2018-6-27 16:41:24 | 显示全部楼层
Jacen.He 发表于 2018-6-27 09:24
有时间写这么长的帖子,
不能先看一下 Python基础语法吗 ?!

谢谢,是我代码不严谨,下次会注意
同时也谢谢上面几位
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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