免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2338 | 回复: 7
打印 上一主题 下一主题

欲实现从文本控件中输入Python命令,该如何实现呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-29 10:47 |只看该作者 |倒序浏览
比如我想执行一个Python命令
>>> myFunction(a=value_a, b=value_b)

但是上面的命令是一个字符串
str="myFunction(a=value_a, b=value_b)"
如何运行它呢?

[ 本帖最后由 refeihc 于 2009-5-29 11:52 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-29 11:40 |只看该作者
比如
>>> def myadd(x=3,y=2):
...     print x,'+',y,'=',x+y
...
>>> apply(myadd,[4,7])
4 + 7 = 11


但还是觉得不够,有没有更便利的方法,向大家请教?

论坛徽章:
0
3 [报告]
发表于 2009-05-29 11:41 |只看该作者
把(a=value_a, b=value_b)值传入到function?

论坛徽章:
0
4 [报告]
发表于 2009-05-29 11:44 |只看该作者

回复 #3 lvDbing 的帖子

对,就是这个意思?谢谢关注!

论坛徽章:
0
5 [报告]
发表于 2009-05-29 11:50 |只看该作者
再补充一下,我是想自己做一个界面,里面包含一用户输入命令的文本控件,可以实现交互,字符串的形式也可以是

str="myFunction a=value_a b=value_b"

其中的myFunction是先定义好了的。

论坛徽章:
0
6 [报告]
发表于 2009-05-29 12:10 |只看该作者
这样?
>>> def add(a, b) :
        return a+b

>>> eval('add(1, 2)')
3
>>>

论坛徽章:
0
7 [报告]
发表于 2009-05-29 12:29 |只看该作者
刚找到一个命令exec,例如
>>> exec 'myadd(5,7)'
5 + 7 = 12


除了还不能把参数名输进去,已经可以用了。

谢谢izhier的回复。

[ 本帖最后由 refeihc 于 2009-5-29 12:31 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-05-31 16:46 |只看该作者
这样子?

>>> def adds(a,b):
...     return a+b
...
>>> adds(1,3)
4
>>> a=4
>>> b=5

>>> eval('adds(a,b)')
9
>>>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP