Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java调用返回类型为的python方法_Java_Python_Call - Fatal编程技术网

从java调用返回类型为的python方法

从java调用返回类型为的python方法,java,python,call,Java,Python,Call,我试图从Java类调用Python方法。方法名为toEvaluateExpression,位于evaluator.py中。此方法返回布尔值并接受字符串作为输入参数。此外,此方法toEvaluateExpression不是类方法。我在网上找到了这个代码 但是,该代码与我的代码有两个主要区别: run是一个类方法,而ToeValueExpression不是 run没有参数,ToeValueExpression将表达式作为其输入 有人能推荐一些类似的代码来解决我的问题吗 public class In

我试图从Java类调用Python方法。方法名为toEvaluateExpression,位于evaluator.py中。此方法返回布尔值并接受字符串作为输入参数。此外,此方法toEvaluateExpression不是类方法。我在网上找到了这个代码

但是,该代码与我的代码有两个主要区别:

run是一个类方法,而ToeValueExpression不是

run没有参数,ToeValueExpression将表达式作为其输入

有人能推荐一些类似的代码来解决我的问题吗

public class InterpreterExample{  

    PythonInterpreter interpreter = null;  
    public InterpreterExample(){  
        PythonInterpreter.initialize(System.getProperties(),  
                             System.getProperties(), new String[0]);  

        this.interpreter = new PythonInterpreter();  
    }  

    void execfile( final String fileName ){  
        this.interpreter.execfile(fileName);  
    }  

    PyInstance createClass( final String className, final String opts ){  
        return (PyInstance) this.interpreter.eval(className + "(" + opts + ")");  
    }  

    public static void main( String gargs[] ){  
        InterpreterExample ie = new InterpreterExample();  

        ie.execfile("hello.py");  

        PyInstance hello = ie.createClass("Hello", "None");  

        hello.invoke("run");  
    }  
}  
Python代码:

class Hello:  
    __gui = None  

    def __init__(self, gui):  
         self.__gui = gui  

    def run(self):  
        print 'Hello world!'
这是toEvaluate的代码,它调用解析器并接收后缀表达式结果

def toEvaluate(expression):
    a = []
    global input
    input = expression+"$"
    infixExp()
    for i in infixexp:
        a.append(i)
        exp = parser.infixtopostfix(a)  
    return parser.evalExp(exp)

然而这篇评论的其余部分都应该是问题的一部分。这不应该是评论。请更新问题以说明此代码的问题所在,并删除注释。请非常详细和具体。好的,我有点明白你的问题,但在我知道发生了什么之前我需要toEvaluateExpression的代码。我刚刚发布了toEvaluateExpression。此方法调用解析器并接收后缀表达式结果。我还需要更多详细信息。例如,为什么有一个全局语句&infixExp,它们是做什么的。另外,为什么要将输入设置为表达式+$,为什么要在for循环的最后一个元素上调用parser.evalExp?细节,细节,细节。我们需要细节。基本上,就目前的情况而言,我认为没有理由让它成为基于类的方法。