假设我在Python中有以下类:
class TestPy:
def __init__(self):
pass
def f(self):
return("Hello World")
我想从Haxe内部调用函数
TestPy.f
。然后我可以通过extern class TestPy {
public function new():Void;
public function f():String;
}
然后使用此声明调用此函数
class Test {
public static function main():Void {
var py:TestPy = new TestPy();
trace(py.f());
}
}
这将编译,但是生成的代码如下所示:
# Generated by Haxe 3.4.7
# coding: utf-8
class Text:
__slots__ = ()
@staticmethod
def main():
py = TestPy()
print(str(py.f()))
Text.main()
这不起作用,因为with
TestPy
类的模块从未在代码中导入:名称错误:未定义名称“TestPy”
所以我的问题是,我如何建议Haxe在生成的代码中添加一个import语句(例如
from testmodule import TestPy
)? 最佳答案
只需向外部添加一个@:pythonImport
元数据。
所以,有点像:
@:pythonImport('testmodule', 'TestPy')
extern class TestPy {...
免责声明:没有测试过这个,所以这可能不是正确的答案,但是元数据是documented in the manual。
关于python - 从Haxe内部调用外部Python类函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50009486/