Delphi通过PythonForDelphi变量来和Python交换数据可以,有没有别的办法了呢?有,可以像COM一样来调用Python模块的变量和函数,这看起来好像能更酷一些 :-)

感谢samson,是他的一篇文章使我学习到了这个方法,并且很热心地给予了指教!

废话少说,先上Python代码(hello.py,放到程序目录下):

strPython='Hello,This is a python string !'
dicPython={'StringInfo':'Hello,This is a python string !'}
lstPython=list('Hello,This is a python string !')

def SayHello(s):
    return 'Hello,'+s

上面是简单的示例,有变量和函数,我们看看在Delphi中怎样来调用.
在Delphi中写下面的代码:

var
  PyModule: variant;
....

  PyModule := Import('hello');
  //测试Python变量传递
  Memo1.Lines.Add(PyModule.strPython);
  Memo1.Lines.Add(PyModule.dicPython);
  Memo1.Lines.Add(PyModule.lstPython);
  Memo1.Lines.Add(PyModule.SayHello('Garfield'));

执行后,在Delphi的Memo1中将看到下面的内容:

Hello,This is a python string !
{'StringInfo': 'Hello,This is a python string !'}
['H', 'e', 'l', 'l', 'o', ',', 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 'p', 'y', 't', 'h', 'o', 'n', ' ', 's', 't', 'r', 'i', 'n', 'g', ' ', '!']
Hello,Garfield

怎么样,是不是看起来也很方便?

 

posted on 2013-01-17 15:30  garfieldtom  阅读(6653)  评论(0编辑  收藏  举报