Differences between revisions 3 and 8 (spanning 5 versions)
Revision 3 as of 2007-10-19 22:33:31
Size: 1780
Editor: GregMoore
Comment:
Revision 8 as of 2010-03-13 11:08:47
Size: 3908
Editor: s235-148
Comment:
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
[[TableOfContents]] <<TableOfContents>>
Line 15: Line 15:
=== Print === == Print ==
Line 17: Line 17:
{{{ print 'Hello World' {{{#!python
print 'Hello World'
Line 21: Line 22:
=== JArray === == JArray ==
Line 39: Line 40:
        for i in range(0, self.N, 1):         for i in range(self.N):
Line 44: Line 45:
        for i in range(0, self.N, 1):         for i in range(self.N):
Line 58: Line 59:
for i in range(0, n/3, 1): for i in range(n/3):
Line 62: Line 63:

== Multidimensional 2-D String Array ==
In case you need 2-D string arrays this example may help you to start. Cheers! Alfonso Reyes, Houston-Texas

{{{#!python
from java.lang.reflect import Array
import java

rows = 3
cols = 3

str2d = java.lang.reflect.Array.newInstance(java.lang.String,[rows, cols])
str2d[0][0] = "python"
str2d[1][0] = "jython"
str2d[2][0] = "java"

str2d[0][1] = "syntax "
str2d[1][1] = "strength"
str2d[2][1] = "libraries"

str2d[0][2] = "unclutter"
str2d[1][2] = "combine"
str2d[2][2] = "graphics"

print str2d

print "printing multidimensional array"
for i in range(len(str2d)):
    for j in range(len(str2d[i])):
        print str2d[i][j]+"\t",
    print
print
}}}

== Finding methods in a python script ==

Posted on the Jython list March 18, 2008:

This will give you name-method pairs; if you just want the names, call
keys() on it.

{{{
import inspect

def _is_some_method(object):
    return inspect.ismethod(object) or inspect.ismethoddescriptor(object)

def allmethods(cl):
    methods = {}
    for key, value in inspect.getmembers(cl, _is_some_method):
        methods[key] = 1
    for base in cl.__bases__:
        methods.update(allmethods(base)) # all your base are belong to us
    for key in methods.keys():
        methods[key] = getattr(cl, key)
    return methods

}}}
Usage example:
{{{
>>> allmethods(str).keys()
['__unicode__', 'rjust', 'center', 'endswith', 'decode', 'translate', 'lower', 'encode', 'isunicode', '__setattr__', '__rmul__', '__add__', '__str__', 'istitle', 'lstrip', 'join', '__reduce_ex__', 'startswith', 'isalnum', 'rstrip', '__getattribute__', '__getslice__', '__eq__', '__init__', '__mod__', 'isupper', '__len__', 'rindex', 'isalpha', 'replace', '__ne__', 'strip', 'isspace', 'swapcase', 'split', 'isnumeric', 'capitalize', 'rfind', '__getitem__', '__contains__', 'title', '__ge__', 'index', '__repr__', 'ljust', 'islower', '__le__', 'isdecimal', 'expandtabs', '__delattr__', 'find', 'splitlines', 'count', 'upper', '__gt__', '__reduce__', 'isdigit', '__lt__', 'zfill', '__cmp__', '__mul__', '__hash__']
}}}

Core Jython / Python Examples

DocumentationAndEducation


Examples related to core Jython / Python will be here. Intended for those new to Python / Jython

Print

Print Hello world

   1 print 'Hello World' 
   2 print "Hello World"

JArray

I was curious on how to work with jarray and move the arrays between classes after being filled with values and operated. I think this example explains some of the basics. Of course, there are more pythonic ways to do this. Cheers! Alfonso Reyes

   1 from java.lang import Math
   2 from jarray import array, zeros
   3 import java.util.Random;
   4 
   5 class ArrayClass:
   6     """    This class will fill an array with random numbers
   7     and then return the array for further operations
   8     """
   9     def __init__(self, elems):
  10         self.N = elems
  11         systemEnergy = 0.0025
  12         self.v = zeros(self.N, "d")     # array of zeros, double type
  13         v0 = Math.sqrt(2.0 * systemEnergy / self.N)
  14         for i in range(self.N):
  15             r = java.util.Random()
  16             self.v[i] = v0 * r.nextInt(self.N)  # same velocity for all particles
  17 
  18     def out(self):
  19         for i in range(self.N):
  20             print i, self.v[i]
  21 
  22     def get(self):
  23         return self.v
  24 
  25 n = 100
  26 uarr = zeros(n, "d")    # array of double to store some operations
  27 ac = ArrayClass(n)      
  28 ac.out()                # print the array
  29 arr = ac.get()          # get the array to start doing some work on it
  30 
  31 # get a first third of the array members and times 10
  32 print "Get a first third of the array members"
  33 for i in range(n/3):
  34     uarr[i] = arr[i] * 10
  35     print i, arr[i], uarr[i]

Multidimensional 2-D String Array

In case you need 2-D string arrays this example may help you to start. Cheers! Alfonso Reyes, Houston-Texas

   1 from java.lang.reflect import Array
   2 import java
   3 
   4 rows = 3
   5 cols = 3
   6 
   7 str2d = java.lang.reflect.Array.newInstance(java.lang.String,[rows, cols])
   8 str2d[0][0] = "python"
   9 str2d[1][0] = "jython"
  10 str2d[2][0] = "java"
  11 
  12 str2d[0][1] = "syntax "
  13 str2d[1][1] = "strength"
  14 str2d[2][1] = "libraries"
  15 
  16 str2d[0][2] = "unclutter"
  17 str2d[1][2] = "combine"
  18 str2d[2][2] = "graphics"
  19 
  20 print str2d
  21 
  22 print "printing multidimensional array"
  23 for i in range(len(str2d)):
  24     for j in range(len(str2d[i])):
  25         print str2d[i][j]+"\t",
  26     print
  27 print

Finding methods in a python script

Posted on the Jython list March 18, 2008:

This will give you name-method pairs; if you just want the names, call keys() on it.

import inspect

def _is_some_method(object):
    return inspect.ismethod(object) or inspect.ismethoddescriptor(object)

def allmethods(cl):
    methods = {}
    for key, value in inspect.getmembers(cl, _is_some_method):
        methods[key] = 1
    for base in cl.__bases__:
        methods.update(allmethods(base)) # all your base are belong to us
    for key in methods.keys():
        methods[key] = getattr(cl, key)
    return methods

Usage example:

>>> allmethods(str).keys()
['__unicode__', 'rjust', 'center', 'endswith', 'decode', 'translate', 'lower', 'encode', 'isunicode', '__setattr__', '__rmul__', '__add__', '__str__', 'istitle', 'lstrip', 'join', '__reduce_ex__', 'startswith', 'isalnum', 'rstrip', '__getattribute__', '__getslice__', '__eq__', '__init__', '__mod__', 'isupper', '__len__', 'rindex', 'isalpha', 'replace', '__ne__', 'strip', 'isspace', 'swapcase', 'split', 'isnumeric', 'capitalize', 'rfind', '__getitem__', '__contains__', 'title', '__ge__', 'index', '__repr__', 'ljust', 'islower', '__le__', 'isdecimal', 'expandtabs', '__delattr__', 'find', 'splitlines', 'count', 'upper', '__gt__', '__reduce__', 'isdigit', '__lt__', 'zfill', '__cmp__', '__mul__', '__hash__']

CoreJythonExamples (last edited 2010-03-13 11:08:47 by s235-148)