'''NOTE: This documents the pre NewStyleClasses world -- so this style should *not* be used for new development against Jython 2.2 or later.''' == Magic fields for Jython objects == * `__class__` * `__methods__` This is a list of methods initially exposed by the class. This list can be modified by an instance. * `__members__` This is a list of attributes for a class. This list can be modified by an instance. == Hiding functionality from Jython == * Implement Class``Dict``Init and set the value of the attribute you wish to hide to null. * Add the exception Py``Ignore``Method``Tag to the throws clause of a method for it to be masked by Jython. == Example Code == {{{ public class JythonClass extends PyObject implements ClassDictInit { /** Field __class__ */ public static PyClass __class__; /** Field __methods__ */ protected static PyList __methods__; /** Field __members__ */ protected static PyList __members__; /** Field exposedtojython */ protected long exposedtojython; /** Field hiddenFromJython */ protected long hiddenFromJython; static { PyObject[] m = new PyObject[1]; m[0] = Py.newString("amethod"); __methods__ = new PyList(m); m = new PyObject[1]; m[0] = Py.newString("amember"); __members__ = new PyList(m); } /** * Initializes the object's namespace. * * @param dict */ static public void classDictInit(PyObject dict) throws PyIgnoreMethodTag { dict.__setitem__("ticks", new DateTimeFunc("ticks", 1, 1, 2, true, "ticks")); dict.__setitem__("gmtoffset", new DateTimeFunc("gmtoffset", 2, 0, 0, true, "gmtoffset")); // hide from python dict.__setitem__("classDictInit", null); dict.__setitem__("getPyClass", null); dict.__setitem__("hideFromJython", null); dict.__setitem__("otherHiddenMethod", null); } }}}