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
怎么样,是不是看起来也很方便?