Jython_JavaJython 的一个实例

package com.coupon.test;


import org.python.core.PyException;
import org.python.core.PyFile;
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;


public class javaJython { 
    
    /** 
     * 关注Jython这几个方面的内容: 
     * 1. 怎样从某个指定的路径import一个Jython模块? 
     * 2. 怎样调用模块里的方法? 
     * 3. java 与 jython 间的参数应该怎样进行传递? 
     * 
     * @param args 
     * @throws PyException 
     */ 
    public static void main(String []args)throws PyException 
    { 
        PythonInterpreter interp = new PythonInterpreter(); 
        
        // 1. 
        // 引入系统模块,并将[./pythonsrc]加入模块搜索路径中去。 
        interp.exec("import sys"); 
        interp.exec("sys.path.append('E:/workspace/androidwork/CouponTest/src/com/coupon/test')"); 
        
        // 2. 引入 fibo, 执行fibo.fib(100), ok 
        interp.exec("import fibo"); 
        interp.exec("fibo.fib(100)"); 
    
        // 3. 在Java 程序中获得 python内置类型的变量值。 
        String text = "'this is a bad day'"; 
        interp.exec("x = " + text + " + '!!!'"); 
        interp.exec("print x"); 
        PyObject object = interp.get("x"); 
        PyString xString = object.__str__(); 
        String outX = xString.asString(); 
        
        interp.exec("_file = open('E:/workspace/androidwork/CouponTest/src/com/coupon/test/fibo.py')"); 
        object = interp.get("_file"); 
        PyFile file = (PyFile)object; 
        PyString content = file.read(100); 
        System.out.println(content); 
        
        interp.exec("array = _file.read(100)"); 
        String array = interp.get("array").asString(); 
        System.out.println(array); 
        
        interp.exec("_file.close()"); 
        file.close(); 
    } 

}

///////////////////////////////////////////////////////////////////////////////

fibo.py

# Fibonacci numbers module 
def fib(n):    # write Fibonacci series up to n 
    a, b = 0, 1 
    while b < n: 
        print b, 
        a, b = b, a+b 


def fib2(n): # return Fibonacci series up to n 
    result = [] 
    a, b = 0, 1 
    while b < n: 
        result.append(b) 
        a, b = b, a+b 
    return result 
print fib(20)

你可能感兴趣的:(String,object,File,import,jython,Numbers)