an implementation of the Python programming language which isIt is perceived that Jython is easier to install and to use compared with other options. The following examples give a brief tour of Jython. In our first example, we will see some Java objects (java.lang.Math) being used within Jython.
designed to run on the Java(tm) Platform.
>>> from java.lang import Math
>>> Math.max(317, 220)
317L
>>> Math.pow(2, 4)
16.0
In our second example, we will create a Java object (Person) and use it within a Jython application.
Definition of the Person object: Person.java
public class Person {
private String firstName;
private String lastName;
private int age;
public Person(String firstName, String lastName, int age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Using Person.java in Jython (we need to compile the java code first):
>>> import Person
>>> john = Person("john", "dole", 27)
>>> john.getFirstName()
u'john'
>>> john.getAge()
27
>>> john.setFirstName("alias")
>>> john.getFirstName()
u'alias'
Our first two examples demonstrate that there is no distinction in using Java or Python objects within Jython: there is no need to start up JVM for using any Java objects, since Jython did that for us.
It is possible to extend (subclass) Java classes via Jython classes. Our third example, taken from the Jython book, show this.
The Java code that defines two methods: Calculator.java
/**
* Java calculator class that contains two simple methods
*/
public class Calculator {
public Calculator(){
}
public double calculateTip(double cost, double tipPercentage){
return cost * tipPercentage;
}
public double calculateTax(double cost, double taxPercentage){
return cost * taxPercentage;
}
}
The Python code (with minor corrections) to extend the Java class: JythonCalc.py
import Calculator
from java.lang import Math
class JythonCalc(Calculator):
def __init__(self):
pass
def calculateTotal(self, cost, tip, tax):
return cost + self.calculateTip(cost, tip) + self.calculateTax(cost, tax)
if __name__ == "__main__":
calc = JythonCalc()
cost = 23.75
tip = .15
tax = .07
print "Starting Cost: ", cost
print "Tip Percentage: ", tip
print "Tax Percentage: ", tax
print Math.round(calc.calculateTotal(cost, tip, tax))
The result will be:
Starting Cost: 23.75
Tip Percentage: 0.15
Tax Percentage: 0.07
29
One question remains: Is Jython the same language as Python? A short answer is Yes. In fact, there are differences. The main one is that the current version of Jython (v2.5) cannot use CPython extension modules written in C. If one wants to use such a module, one should look for an equivalent written in pure Java or Python. However, it is claimed that future release will eliminate this difference.
No comments:
Post a Comment