PyObject (Jython API documentation)
Date: 2015-04-29

org.python.core

## Class PyObject

- java.lang.Object
- - org.python.core.PyObject

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    _codecs.EncodingMap, _hashlib.Hash, _marshal.Marshaller, _marshal.Unmarshaller, AbstractReference, BaseDictionaryView, BasePointer, BaseSet, ByReference, CData, Condition, CType, dict_builder, DynamicLibrary, Encoder, exceptions, FieldNameIterator, importer, JavaImporter, Lock, MarkupIterator, MatchObject, operator, PatternObject, PyBaseException, PyBeanEvent, PyBeanEventProperty, PyBuiltinCallable, PyBZ2Compressor, PyBZ2Decompressor, PyBZ2File, PyCell, PyClass, PyClassMethod, PyCode, PyComplex, PyCompoundCallable, PyConnection, PyCursor, PyDeque, PyDescriptor, PyDialect, PyDictionary, PyDictProxy, PyFile, PyFileReader, PyFileWriter, PyFloat, PyFrame, PyFunction, PyInstance, PyInteger, PyIOBase, PyIterator, PyJavaPackage, PyLocal, PyLock, PyLong, PyMethod, PyModule, PyNone, PyNullImporter, PyObjectDerived, PyPartial, PyProperty, PyRandom, PyReflectedField, PyReflectedFunction, PySequence, PySingleton, PySlice, PyStatement, PyStaticMethod, PyStringMap, PyStruct, PySuper, PySystemState, PyTraceback, PyType, PyWriter, RLock, Scanner, ScannerObject, set_builder, StructLayout.Field, synchronize.SynchronizedCallable, zxJDBC

      public class PyObject
      extends Object
      implements Serializable

  All objects known to the Jython runtime system are represented by an instance of the class `PyObject` or one of its subclasses.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PyObject.ConversionException`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `gcMonitorGlobal` This should have been suited at `gc`, but that would cause a dependency cycle in the init-phases of `gc.class` and `PyObject.class`.
    `static PyType` | `TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PyObject()` The standard constructor for a `PyObject`.
    `PyObject(PyType objtype)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PyObject` | `__abs__()` Equivalent to the standard Python __abs__ method.
    `PyObject` | `__add__(PyObject other)` Equivalent to the standard Python __add__ method.
    `PyObject` | `__and__(PyObject other)` Equivalent to the standard Python __and__ method
    `PyObject` | `__call__()` A variant of the __call__ method with no arguments.
    `PyObject` | `__call__(PyObject arg0)` A variant of the __call__ method with one argument.
    `PyObject` | `__call__(PyObject[] args)` A variant of the __call__ method when no keywords are passed.
    `PyObject` | `__call__(PyObject[] args, String[] keywords)` The basic method to override when implementing a callable object.
    `PyObject` | `__call__(PyObject arg0, PyObject arg1)` A variant of the __call__ method with two arguments.
    `PyObject` | `__call__(PyObject arg1, PyObject[] args, String[] keywords)` A variant of the __call__ method with one extra initial argument.
    `PyObject` | `__call__(PyObject arg0, PyObject arg1, PyObject arg2)` A variant of the __call__ method with three arguments.
    `PyObject` | `__call__(PyObject arg0, PyObject arg1, PyObject arg2, PyObject arg3)` A variant of the __call__ method with four arguments.
    `PyObject` | `__call__(ThreadState state)`
    `PyObject` | `__call__(ThreadState state, PyObject arg0)`
    `PyObject` | `__call__(ThreadState state, PyObject[] args)`
    `PyObject` | `__call__(ThreadState state, PyObject[] args, String[] keywords)`
    `PyObject` | `__call__(ThreadState state, PyObject arg0, PyObject arg1)`
    `PyObject` | `__call__(ThreadState state, PyObject arg1, PyObject[] args, String[] keywords)`
    `PyObject` | `__call__(ThreadState state, PyObject arg0, PyObject arg1, PyObject arg2)`
    `PyObject` | `__call__(ThreadState state, PyObject arg0, PyObject arg1, PyObject arg2, PyObject arg3)`
    `int` | `__cmp__(PyObject other)` Equivalent to the standard Python __cmp__ method.
    `PyObject` | `__coerce__(PyObject pyo)` Equivalent to the standard Python __coerce__ method.
    `Object` | `__coerce_ex__(PyObject o)` Implements numeric coercion
    `PyComplex` | `__complex__()` Equivalent to the standard Python __complex__ method.
    `boolean` | `__contains__(PyObject o)` Equivalent to the standard Python __contains__ method.
    `void` | `__delattr__(PyString name)` Equivalent to the standard Python __delattr__ method.
    `void` | `__delattr__(String name)` A variant of the __delattr__ method which accepts a String as the key.
    `void` | `__delete__(PyObject obj)`
    `void` | `__delitem__(PyObject key)` Equivalent to the standard Python __delitem__ method.
    `void` | `__delitem__(String key)` A variant of the __delitem__ method which accepts a String as the key.
    `void` | `__delslice__(PyObject start, PyObject stop)`
    `void` | `__delslice__(PyObject s_start, PyObject s_stop, PyObject s_step)`
    `PyObject` | `__dir__()` Equivalent to the standard Python __dir__ method.
    `PyObject` | `__div__(PyObject other)` Equivalent to the standard Python __div__ method
    `PyObject` | `__divmod__(PyObject other)` Equivalent to the standard Python __divmod__ method
    `void` | `__ensure_finalizer__()` PyObjects that implement `org.python.core.finalization.HasFinalizeTrigger` shall implement this method via: `FinalizeTrigger.ensureFinalizer(this);`
    `PyObject` | `__eq__(PyObject other)` Equivalent to the standard Python __eq__ method.
    `PyObject` | `__findattr__(PyString name)` Very similar to the standard Python __getattr__ method.
    `PyObject` | `__findattr__(String name)` A variant of the __findattr__ method which accepts a Java `String` as the name.
    `PyObject` | `__findattr_ex__(String name)` Attribute lookup hook.
    `PyObject` | `__finditem__(int key)` A variant of the __finditem__ method which accepts a primitive `int` as the key.
    `PyObject` | `__finditem__(PyObject key)` Very similar to the standard Python __getitem__ method.
    `PyObject` | `__finditem__(String key)` A variant of the __finditem__ method which accepts a Java `String` as the key.
    `PyFloat` | `__float__()` Equivalent to the standard Python __float__ method.
    `PyObject` | `__floordiv__(PyObject other)` Equivalent to the standard Python __floordiv__ method
    `PyObject` | `__format__(PyObject formatSpec)`
    `PyObject` | `__ge__(PyObject other)` Equivalent to the standard Python __ge__ method.
    `PyObject` | `__get__(PyObject obj, PyObject type)` Get descriptor for this PyObject.
    `PyObject` | `__getattr__(PyString name)` Equivalent to the standard Python __getattr__ method.
    `PyObject` | `__getattr__(String name)` A variant of the __getattr__ method which accepts a Java `String` as the name.
    `PyObject` | `__getitem__(int key)` Equivalent to the standard Python __getitem__ method.
    `PyObject` | `__getitem__(PyObject key)` Equivalent to the standard Python __getitem__ method.
    `PyTuple` | `__getnewargs__()`
    `PyObject` | `__getslice__(PyObject start, PyObject stop)`
    `PyObject` | `__getslice__(PyObject s_start, PyObject s_stop, PyObject s_step)`
    `PyObject` | `__gt__(PyObject other)` Equivalent to the standard Python __gt__ method.
    `PyInteger` | `__hash__()` Equivalent to the standard Python __hash__ method.
    `PyString` | `__hex__()` Equivalent to the standard Python __hex__ method Should only be overridden by numeric objects that can be reasonably represented as a hexadecimal string.
    `PyObject` | `__iadd__(PyObject other)` Equivalent to the standard Python __iadd__ method.
    `PyObject` | `__iand__(PyObject other)` Equivalent to the standard Python __iand__ method
    `PyObject` | `__idiv__(PyObject other)` Equivalent to the standard Python __idiv__ method
    `PyObject` | `__idivmod__(PyObject other)` Equivalent to the standard Python __idivmod__ method
    `PyObject` | `__ifloordiv__(PyObject other)` Equivalent to the standard Python __ifloordiv__ method
    `PyObject` | `__ilshift__(PyObject other)` Equivalent to the standard Python __ilshift__ method
    `PyObject` | `__imod__(PyObject other)` Equivalent to the standard Python __imod__ method
    `PyObject` | `__imul__(PyObject other)` Equivalent to the standard Python __imul__ method.
    `PyObject` | `__index__()` Equivalent to the standard Python __index__ method.
    `PyObject` | `__int__()` Equivalent to the standard Python __int__ method.
    `PyObject` | `__invert__()` Equivalent to the standard Python __invert__ method.
    `PyObject` | `__ior__(PyObject other)` Equivalent to the standard Python __ior__ method
    `PyObject` | `__ipow__(PyObject other)` Equivalent to the standard Python __ipow__ method
    `PyObject` | `__irshift__(PyObject other)` Equivalent to the standard Python __irshift__ method
    `PyObject` | `__isub__(PyObject other)` Equivalent to the standard Python __isub__ method
    `PyObject` | `__iter__()` Return an iterator that is used to iterate the element of this sequence.
    `PyObject` | `__iternext__()` Return the next element of the sequence that this is an iterator for.
    `PyObject` | `__itruediv__(PyObject other)` Equivalent to the standard Python __itruediv__ method
    `PyObject` | `__ixor__(PyObject other)` Equivalent to the standard Python __ixor__ method
    `PyObject` | `__le__(PyObject other)` Equivalent to the standard Python __le__ method.
    `int` | `__len__()` Equivalent to the standard Python __len__ method.
    `PyObject` | `__long__()` Equivalent to the standard Python __long__ method.
    `PyObject` | `__lshift__(PyObject other)` Equivalent to the standard Python __lshift__ method
    `PyObject` | `__lt__(PyObject other)` Equivalent to the standard Python __lt__ method.
    `PyObject` | `__mod__(PyObject other)` Equivalent to the standard Python __mod__ method
    `PyObject` | `__mul__(PyObject other)` Equivalent to the standard Python __mul__ method.
    `PyObject` | `__ne__(PyObject other)` Equivalent to the standard Python __ne__ method.
    `PyObject` | `__neg__()` Equivalent to the standard Python __neg__ method.
    `boolean` | `__nonzero__()` Equivalent to the standard Python __nonzero__ method.
    `PyObject` | `__not__()` Implements boolean not
    `PyString` | `__oct__()` Equivalent to the standard Python __oct__ method.
    `PyObject` | `__or__(PyObject other)` Equivalent to the standard Python __or__ method
    `PyObject` | `__pos__()` Equivalent to the standard Python __pos__ method.
    `PyObject` | `__pow__(PyObject other)` Equivalent to the standard Python __pow__ method
    `PyObject` | `__pow__(PyObject o2, PyObject o3)` Implements the three argument power function.
    `PyObject` | `__radd__(PyObject other)` Equivalent to the standard Python __radd__ method.
    `PyObject` | `__rand__(PyObject other)` Equivalent to the standard Python __rand__ method
    `PyObject` | `__rdiv__(PyObject other)` Equivalent to the standard Python __rdiv__ method
    `PyObject` | `__rdivmod__(PyObject other)` Equivalent to the standard Python __rdivmod__ method
    `PyObject` | `__reduce__()` Used for pickling.
    `PyObject` | `__reduce_ex__()`
    `PyObject` | `__reduce_ex__(int arg)` Used for pickling.
    `PyString` | `__repr__()` Equivalent to the standard Python __repr__ method.
    `PyObject` | `__rfloordiv__(PyObject other)` Equivalent to the standard Python __rfloordiv__ method
    `PyObject` | `__rlshift__(PyObject other)` Equivalent to the standard Python __rlshift__ method
    `PyObject` | `__rmod__(PyObject other)` Equivalent to the standard Python __rmod__ method
    `PyObject` | `__rmul__(PyObject other)` Equivalent to the standard Python __rmul__ method.
    `PyObject` | `__ror__(PyObject other)` Equivalent to the standard Python __ror__ method
    `PyObject` | `__rpow__(PyObject other)` Equivalent to the standard Python __rpow__ method
    `PyObject` | `__rrshift__(PyObject other)` Equivalent to the standard Python __rrshift__ method
    `PyObject` | `__rshift__(PyObject other)` Equivalent to the standard Python __rshift__ method
    `PyObject` | `__rsub__(PyObject other)` Equivalent to the standard Python __rsub__ method
    `PyObject` | `__rtruediv__(PyObject other)` Equivalent to the standard Python __rtruediv__ method
    `PyObject` | `__rxor__(PyObject other)` Equivalent to the standard Python __rxor__ method
    `void` | `__set__(PyObject obj, PyObject value)`
    `void` | `__setattr__(PyString name, PyObject value)` Equivalent to the standard Python __setattr__ method.
    `void` | `__setattr__(String name, PyObject value)` A variant of the __setattr__ method which accepts a String as the key.
    `void` | `__setitem__(int key, PyObject value)` A variant of the __setitem__ method which accepts a primitive `int` as the key.
    `void` | `__setitem__(PyObject key, PyObject value)` Equivalent to the standard Python __setitem__ method.
    `void` | `__setitem__(String key, PyObject value)` A variant of the __setitem__ method which accepts a String as the key.
    `void` | `__setslice__(PyObject start, PyObject stop, PyObject value)`
    `void` | `__setslice__(PyObject s_start, PyObject s_stop, PyObject s_step, PyObject value)`
    `PyString` | `__str__()` Equivalent to the standard Python __str__ method.
    `PyObject` | `__sub__(PyObject other)` Equivalent to the standard Python __sub__ method
    `Object` | `__tojava__(Class<?> c)` Equivalent to the Jython __tojava__ method.
    `PyObject` | `__truediv__(PyObject other)` Equivalent to the standard Python __truediv__ method
    `PyObject` | `__trunc__()` Equivalent to the standard Python __trunc__ method.
    `PyUnicode` | `__unicode__()`
    `PyObject` | `__xor__(PyObject other)` Equivalent to the standard Python __xor__ method
    `PyObject` | `_add(PyObject o2)` Implements the Python expression `this + o2`.
    `PyObject` | `_and(PyObject o2)` Implements the Python expression `this & o2`
    `PyObject` | `_callextra(PyObject[] args, String[] keywords, PyObject starargs, PyObject kwargs)`
    `int` | `_cmp(PyObject o)` Implements cmp(this, other)
    `PyObject` | `_div(PyObject o2)` Implements the Python expression `this / o2`
    `PyObject` | `_divmod(PyObject o2)` Implements the Python expression `this divmod o2`
    `PyObject` | `_doget(PyObject container)`
    `PyObject` | `_doget(PyObject container, PyObject wherefound)`
    `boolean` | `_doset(PyObject container, PyObject value)`
    `PyObject` | `_eq(PyObject o)` Implements the Python expression `this == other`.
    `PyObject` | `_floordiv(PyObject o2)` Implements the Python expression `this // o2`
    `PyObject` | `_ge(PyObject o)` Implements the Python expression `this >= other`.
    `PyObject` | `_gt(PyObject o)` Implements the Python expression `this > other`.
    `PyObject` | `_iadd(PyObject o2)` Implements the Python expression `this += o2`.
    `PyObject` | `_iand(PyObject o2)` Implements the Python expression `this &= o2`
    `PyObject` | `_idiv(PyObject o2)` Implements the Python expression `this /= o2`
    `PyObject` | `_idivmod(PyObject o2)` Implements the Python expression `this divmod= o2`
    `PyObject` | `_ifloordiv(PyObject o2)` Implements the Python expression `this //= o2`
    `PyObject` | `_ilshift(PyObject o2)` Implements the Python expression `this <<= o2`
    `PyObject` | `_imod(PyObject o2)` Implements the Python expression `this %= o2`
    `PyObject` | `_imul(PyObject o2)` Implements the Python expression `this *= o2`.
    `PyObject` | `_in(PyObject o)` Implements `in` operator.
    `PyObject` | `_ior(PyObject o2)` Implements the Python expression `this |= o2`
    `PyObject` | `_ipow(PyObject o2)` Implements the Python expression `this **= o2`
    `PyObject` | `_irshift(PyObject o2)` Implements the Python expression `this >>= o2`
    `PyObject` | `_is(PyObject o)` Implements `is` operator.
    `PyObject` | `_isnot(PyObject o)` Implements `is not` operator.
    `PyObject` | `_isub(PyObject o2)` Implements the Python expression `this -= o2`
    `PyObject` | `_itruediv(PyObject o2)` Implements the Python expression `this /= o2`
    `PyObject` | `_ixor(PyObject o2)` Implements the Python expression `this ^= o2`
    `PyObject` | `_jcall(Object[] args)`
    `PyObject` | `_jcallexc(Object[] args)` A convenience function for PyProxys.
    `void` | `_jthrow(Throwable t)`
    `PyObject` | `_le(PyObject o)` Implements the Python expression `this <= other`.
    `PyObject` | `_lshift(PyObject o2)` Implements the Python expression `this << o2`
    `PyObject` | `_lt(PyObject o)` Implements the Python expression `this < other`.
    `PyObject` | `_mod(PyObject o2)` Implements the Python expression `this % o2`
    `PyObject` | `_mul(PyObject o2)` Implements the Python expression `this * o2`.
    `PyObject` | `_ne(PyObject o)` Implements the Python expression `this !`
    `PyObject` | `_notin(PyObject o)` Implements `not in` operator.
    `PyObject` | `_or(PyObject o2)` Implements the Python expression `this | o2`
    `PyObject` | `_pow(PyObject o2)` Implements the Python expression `this ** o2`
    `PyObject` | `_rshift(PyObject o2)` Implements the Python expression `this >> o2`
    `PyObject` | `_sub(PyObject o2)` Implements the Python expression `this - o2`
    `PyObject` | `_truediv(PyObject o2)` Implements the Python expression `this / o2`
    `PyObject` | `_xor(PyObject o2)` Implements the Python expression `this ^ o2`
    `double` | `asDouble()` Convert this object into a double.
    `int` | `asIndex()` Convert this object into an index-sized integer.
    `int` | `asIndex(PyObject err)` Convert this object into an index-sized integer.
    `int` | `asInt()` Convert this object into an int.
    `int` | `asInt(int index)`
    `Iterable<PyObject>` | `asIterable()` Returns an Iterable over the Python iterator returned by __iter__ on this object.
    `long` | `asLong()` Convert this object longo an long.
    `long` | `asLong(int index)`
    `String` | `asName(int index)`
    `static String` | `asName(PyObject obj)`
    `String` | `asString()`
    `String` | `asString(int index)`
    `String` | `asStringOrNull()`
    `String` | `asStringOrNull(int index)`
    `int` | `bit_length()` Equivalent to the standard Python bit_length method.
    `PyObject` | `conjugate()` Equivalent to the standard Python conjugate method.
    `void` | `delDict()`
    `void` | `delType()`
    `void` | `dispatch__init__(PyObject[] args, String[] keywords)` Dispatch __init__ behavior
    `boolean` | `equals(Object ob_other)` Should almost never be overridden.
    `PyObject` | `fastGetClass()`
    `PyObject` | `fastGetDict()` xxx implements where meaningful
    `PyObject` | `getDict()` xxx implements where meaningful
    `PyType` | `getType()`
    `int` | `hashCode()`
    `boolean` | `implementsDescrDelete()`
    `boolean` | `implementsDescrGet()`
    `boolean` | `implementsDescrSet()`
    `PyObject` | `invoke(String name)` Shortcut for calling a method on a PyObject with no args.
    `PyObject` | `invoke(String name, PyObject arg1)` Shortcut for calling a method on a PyObject with one arg.
    `PyObject` | `invoke(String name, PyObject[] args)`
    `PyObject` | `invoke(String name, PyObject[] args, String[] keywords)` Shortcut for calling a method on a PyObject from Java.
    `PyObject` | `invoke(String name, PyObject arg1, PyObject arg2)` Shortcut for calling a method on a PyObject with two args.
    `PyObject` | `invoke(String name, PyObject arg1, PyObject[] args, String[] keywords)` Shortcut for calling a method on a PyObject with one extra initial argument.
    `boolean` | `isCallable()`
    `boolean` | `isDataDescr()`
    `boolean` | `isIndex()` Determine if this object can act as an index (implements __index__).
    `boolean` | `isInteger()` Determine if this object can act as an int (implements __int__).
    `boolean` | `isMappingType()`
    `boolean` | `isNumberType()`
    `boolean` | `isSequenceType()`
    `void` | `noAttributeError(String name)`
    `static PyObject` | `object___subclasshook__(PyType type, PyObject subclass)`
    `void` | `readonlyAttributeError(String name)`
    `void` | `setDict(PyObject newDict)`
    `void` | `setType(PyType type)`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TYPE

          public static final PyType TYPE

    - #### gcMonitorGlobal

          public static boolean gcMonitorGlobal

      This should have been suited at `gc`, but that would cause a dependency cycle in the init-phases of `gc.class` and `PyObject.class`. Now this boolean mirrors the presence of the `gc.MONITOR_GLOBAL`-flag in Jython's gc module.
      Do not change manually.

  - ### Constructor Detail

    - #### PyObject

          public PyObject(PyType objtype)

    - #### PyObject

          public PyObject()

      The standard constructor for a `PyObject`. It will set the `objtype` field to correspond to the specific subclass of `PyObject` being instantiated.

  - ### Method Detail

    - #### getType

          public PyType getType()

    - #### setType

          public void setType(PyType type)

    - #### delType

          public void delType()

    - #### fastGetClass

          public PyObject fastGetClass()

    - #### dispatch__init__

          public void dispatch__init__(PyObject[] args,
                              String[] keywords)

      Dispatch __init__ behavior

    - #### __repr__

          public PyString __repr__()

      Equivalent to the standard Python __repr__ method. This method should not typically need to be overrriden. The easiest way to configure the string representation of a `PyObject` is to override the standard Java `toString` method.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### __str__

          public PyString __str__()

      Equivalent to the standard Python __str__ method. This method should not typically need to be overridden. The easiest way to configure the string representation of a `PyObject` is to override the standard Java `toString` method.

    - #### __ensure_finalizer__

          public void __ensure_finalizer__()

      PyObjects that implement `org.python.core.finalization.HasFinalizeTrigger` shall implement this method via:
      `FinalizeTrigger.ensureFinalizer(this);`

    - #### __unicode__

          public PyUnicode __unicode__()

    - #### __hash__

          public final PyInteger __hash__()

      Equivalent to the standard Python __hash__ method. This method can not be overridden. Instead, you should override the standard Java `hashCode` method to return an appropriate hash code for the `PyObject`.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals(Object ob_other)

      Should almost never be overridden. If overridden, it is the subclasses responsibility to ensure that `a.equals(b) == true` iff `cmp(a,b) == 0`
      Overrides:
        `equals` in class `Object`

    - #### __nonzero__

          public boolean __nonzero__()

      Equivalent to the standard Python __nonzero__ method. Returns whether of not a given `PyObject` is considered true.

    - #### __tojava__

          public Object __tojava__(Class<?> c)

      Equivalent to the Jython __tojava__ method. Tries to coerce this object to an instance of the requested Java class. Returns the special object `Py.NoConversion` if this `PyObject` can not be converted to the desired Java class.
      Parameters:
        `c` - the Class to convert this `PyObject` to.

    - #### __call__

          public PyObject __call__(PyObject[] args,
                          String[] keywords)

      The basic method to override when implementing a callable object. The first len(args)-len(keywords) members of args[] are plain arguments. The last len(keywords) arguments are the values of the keyword arguments.
      Parameters:
        `args` - all arguments to the function (including keyword arguments).
        `keywords` - the keywords used for all keyword arguments.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject[] args,
                          String[] keywords)

    - #### __call__

          public PyObject __call__(PyObject arg1,
                          PyObject[] args,
                          String[] keywords)

      A variant of the __call__ method with one extra initial argument. This variant is used to allow method invocations to be performed efficiently. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `arg1` - the first argument to the function.
        `args` - the last arguments to the function (including keyword arguments).
        `keywords` - the keywords used for all keyword arguments.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject arg1,
                          PyObject[] args,
                          String[] keywords)

    - #### __call__

          public PyObject __call__(PyObject[] args)

      A variant of the __call__ method when no keywords are passed. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `args` - all arguments to the function.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject[] args)

    - #### __call__

          public PyObject __call__()

      A variant of the __call__ method with no arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

    - #### __call__

          public PyObject __call__(ThreadState state)

    - #### __call__

          public PyObject __call__(PyObject arg0)

      A variant of the __call__ method with one argument. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `arg0` - the single argument to the function.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject arg0)

    - #### __call__

          public PyObject __call__(PyObject arg0,
                          PyObject arg1)

      A variant of the __call__ method with two arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `arg0` - the first argument to the function.
        `arg1` - the second argument to the function.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject arg0,
                          PyObject arg1)

    - #### __call__

          public PyObject __call__(PyObject arg0,
                          PyObject arg1,
                          PyObject arg2)

      A variant of the __call__ method with three arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `arg0` - the first argument to the function.
        `arg1` - the second argument to the function.
        `arg2` - the third argument to the function.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject arg0,
                          PyObject arg1,
                          PyObject arg2)

    - #### __call__

          public PyObject __call__(PyObject arg0,
                          PyObject arg1,
                          PyObject arg2,
                          PyObject arg3)

      A variant of the __call__ method with four arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.
      Parameters:
        `arg0` - the first argument to the function.
        `arg1` - the second argument to the function.
        `arg2` - the third argument to the function.
        `arg3` - the fourth argument to the function.

    - #### __call__

          public PyObject __call__(ThreadState state,
                          PyObject arg0,
                          PyObject arg1,
                          PyObject arg2,
                          PyObject arg3)

    - #### _callextra

          public PyObject _callextra(PyObject[] args,
                            String[] keywords,
                            PyObject starargs,
                            PyObject kwargs)

    - #### isCallable

          public boolean isCallable()

    - #### isNumberType

          public boolean isNumberType()

    - #### isMappingType

          public boolean isMappingType()

    - #### isSequenceType

          public boolean isSequenceType()

    - #### isInteger

          public boolean isInteger()

      Determine if this object can act as an int (implements __int__).
      Returns:
        true if the object can act as an int

    - #### isIndex

          public boolean isIndex()

      Determine if this object can act as an index (implements __index__).
      Returns:
        true if the object can act as an index

    - #### __len__

          public int __len__()

      Equivalent to the standard Python __len__ method. Part of the mapping discipline.
      Returns:
        the length of the object

    - #### __finditem__

          public PyObject __finditem__(PyObject key)

      Very similar to the standard Python __getitem__ method. Instead of throwing a KeyError if the item isn't found, this just returns null. Classes that wish to implement __getitem__ should override this method instead (with the appropriate semantics.
      Parameters:
        `key` - the key to lookup in this container
      Returns:
        the value corresponding to key or null if key is not found

    - #### __finditem__

          public PyObject __finditem__(int key)

      A variant of the __finditem__ method which accepts a primitive `int` as the key. By default, this method will call `__finditem__(PyObject key)` with the appropriate args. The only reason to override this method is for performance.
      Parameters:
        `key` - the key to lookup in this sequence.
      Returns:
        the value corresponding to key or null if key is not found.
      See Also:
        `__finditem__(PyObject)`

    - #### __finditem__

          public PyObject __finditem__(String key)

      A variant of the __finditem__ method which accepts a Java `String` as the key. By default, this method will call `__finditem__(PyObject key)` with the appropriate args. The only reason to override this method is for performance. Warning: key must be an interned string!!!!!!!!
      Parameters:
        `key` - the key to lookup in this sequence - must be an interned string .
      Returns:
        the value corresponding to key or null if key is not found.
      See Also:
        `__finditem__(PyObject)`

    - #### __getitem__

          public PyObject __getitem__(int key)

      Equivalent to the standard Python __getitem__ method. This variant takes a primitive `int` as the key. This method should not be overridden. Override the `__finditem__` method instead.
      Parameters:
        `key` - the key to lookup in this container.
      Returns:
        the value corresponding to that key.
      Throws:
        `Py.KeyError` - if the key is not found.
      See Also:
        `__finditem__(int)`

    - #### __getitem__

          public PyObject __getitem__(PyObject key)

      Equivalent to the standard Python __getitem__ method. This method should not be overridden. Override the `__finditem__` method instead.
      Parameters:
        `key` - the key to lookup in this container.
      Returns:
        the value corresponding to that key.
      Throws:
        `Py.KeyError` - if the key is not found.
      See Also:
        `__finditem__(PyObject)`

    - #### __setitem__

          public void __setitem__(PyObject key,
                         PyObject value)

      Equivalent to the standard Python __setitem__ method.
      Parameters:
        `key` - the key whose value will be set
        `value` - the value to set this key to

    - #### __setitem__

          public void __setitem__(String key,
                         PyObject value)

      A variant of the __setitem__ method which accepts a String as the key. This String must be interned. By default, this will call `__setitem__(PyObject key, PyObject value)` with the appropriate args. The only reason to override this method is for performance.
      Parameters:
        `key` - the key whose value will be set - must be an interned string .
        `value` - the value to set this key to
      See Also:
        `__setitem__(PyObject, PyObject)`

    - #### __setitem__

          public void __setitem__(int key,
                         PyObject value)

      A variant of the __setitem__ method which accepts a primitive `int` as the key. By default, this will call `__setitem__(PyObject key, PyObject value)` with the appropriate args. The only reason to override this method is for performance.
      Parameters:
        `key` - the key whose value will be set
        `value` - the value to set this key to
      See Also:
        `__setitem__(PyObject, PyObject)`

    - #### __delitem__

          public void __delitem__(PyObject key)

      Equivalent to the standard Python __delitem__ method.
      Parameters:
        `key` - the key to be removed from the container
      Throws:
        `Py.KeyError` - if the key is not found in the container

    - #### __delitem__

          public void __delitem__(String key)

      A variant of the __delitem__ method which accepts a String as the key. This String must be interned. By default, this will call `__delitem__(PyObject key)` with the appropriate args. The only reason to override this method is for performance.
      Parameters:
        `key` - the key who will be removed - must be an interned string .
      Throws:
        `Py.KeyError` - if the key is not found in the container
      See Also:
        `__delitem__(PyObject)`

    - #### __getslice__

          public PyObject __getslice__(PyObject s_start,
                              PyObject s_stop,
                              PyObject s_step)

    - #### __setslice__

          public void __setslice__(PyObject s_start,
                          PyObject s_stop,
                          PyObject s_step,
                          PyObject value)

    - #### __delslice__

          public void __delslice__(PyObject s_start,
                          PyObject s_stop,
                          PyObject s_step)

    - #### __getslice__

          public PyObject __getslice__(PyObject start,
                              PyObject stop)

    - #### __setslice__

          public void __setslice__(PyObject start,
                          PyObject stop,
                          PyObject value)

    - #### __delslice__

          public void __delslice__(PyObject start,
                          PyObject stop)

    - #### __iter__

          public PyObject __iter__()

      Return an iterator that is used to iterate the element of this sequence. From version 2.2, this method is the primary protocol for looping over sequences.

      If a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:

           public PyObject __iter__() {
               return new PySequenceIter(this);
           }

      When iterating over a python sequence from java code, it should be done with code like this:

           for (PyObject item : seq.asIterable()) {
               // Do somting with item
           }

      Since:
        2.2

    - #### asIterable

          public Iterable<PyObject> asIterable()

      Returns an Iterable over the Python iterator returned by __iter__ on this object. If this object doesn't support __iter__, a TypeException will be raised when iterator is called on the returned Iterable.

    - #### __iternext__

          public PyObject __iternext__()

      Return the next element of the sequence that this is an iterator for. Returns null when the end of the sequence is reached.
      Since:
        2.2

    - #### __findattr__

          public final PyObject __findattr__(PyString name)

      Very similar to the standard Python __getattr__ method. Instead of throwing a AttributeError if the item isn't found, this just returns null. By default, this method will call `__findattr__(name.internedString)` with the appropriate args.
      Parameters:
        `name` - the name to lookup in this namespace
      Returns:
        the value corresponding to name or null if name is not found

    - #### __findattr__

          public final PyObject __findattr__(String name)

      A variant of the __findattr__ method which accepts a Java `String` as the name. Warning: name must be an interned string!
      Parameters:
        `name` - the name to lookup in this namespace must be an interned string .
      Returns:
        the value corresponding to name or null if name is not found

    - #### __findattr_ex__

          public PyObject __findattr_ex__(String name)

      Attribute lookup hook. If the attribute is not found, null may be returned or a Py.AttributeError can be thrown, whatever is more correct, efficient and/or convenient for the implementing class. Client code should use `__getattr__(String)` or `__findattr__(String)`. Both methods have a clear policy for failed lookups.
      Returns:
        The looked up value. May return null if the attribute is not found
      Throws:
        `PyException(AttributeError)` - if the attribute is not found. This is not mandatory, null can be returned if it fits the implementation better, or for performance reasons.

    - #### __getattr__

          public final PyObject __getattr__(PyString name)

      Equivalent to the standard Python __getattr__ method. By default, this method will call `__getattr__(name.internedString)` with the appropriate args.
      Parameters:
        `name` - the name to lookup in this namespace
      Returns:
        the value corresponding to name
      Throws:
        `Py.AttributeError` - if the name is not found.
      See Also:
        `__findattr_ex__(String)`

    - #### __getattr__

          public final PyObject __getattr__(String name)

      A variant of the __getattr__ method which accepts a Java `String` as the name. This method can not be overridden. Override the `__findattr_ex__` method instead. Warning: name must be an interned string!!!!!!!!
      Parameters:
        `name` - the name to lookup in this namespace must be an interned string .
      Returns:
        the value corresponding to name
      Throws:
        `Py.AttributeError` - if the name is not found.
      See Also:
        `__findattr__(java.lang.String)`

    - #### noAttributeError

          public void noAttributeError(String name)

    - #### readonlyAttributeError

          public void readonlyAttributeError(String name)

    - #### __setattr__

          public final void __setattr__(PyString name,
                         PyObject value)

      Equivalent to the standard Python __setattr__ method. This method can not be overridden.
      Parameters:
        `name` - the name to lookup in this namespace
      Throws:
        `Py.AttributeError` - if the name is not found.
      See Also:
        `__setattr__(java.lang.String, PyObject)`

    - #### __setattr__

          public void __setattr__(String name,
                         PyObject value)

      A variant of the __setattr__ method which accepts a String as the key. This String must be interned.
      Parameters:
        `name` - the name whose value will be set - must be an interned string .
        `value` - the value to set this name to
      See Also:
        `__setattr__(PyString, PyObject)`

    - #### __delattr__

          public final void __delattr__(PyString name)

      Equivalent to the standard Python __delattr__ method. This method can not be overridden.
      Parameters:
        `name` - the name to which will be removed
      Throws:
        `Py.AttributeError` - if the name doesn't exist
      See Also:
        `__delattr__(java.lang.String)`

    - #### __delattr__

          public void __delattr__(String name)

      A variant of the __delattr__ method which accepts a String as the key. This String must be interned. By default, this will call `__delattr__(PyString name)` with the appropriate args. The only reason to override this method is for performance.
      Parameters:
        `name` - the name which will be removed - must be an interned string .
      Throws:
        `Py.AttributeError` - if the name doesn't exist
      See Also:
        `__delattr__(PyString)`

    - #### __dir__

          public PyObject __dir__()

      Equivalent to the standard Python __dir__ method.
      Returns:
        a list of names defined by this object.

    - #### _doget

          public PyObject _doget(PyObject container)

    - #### _doget

          public PyObject _doget(PyObject container,
                        PyObject wherefound)

    - #### _doset

          public boolean _doset(PyObject container,
                       PyObject value)

    - #### __coerce_ex__

          public Object __coerce_ex__(PyObject o)

      Implements numeric coercion
      Parameters:
        `o` - the other object involved in the coercion
      Returns:
        null if coercion is not implemented Py.None if coercion was not possible a single PyObject to use to replace o if this is unchanged; or a PyObject[2] consisting of replacements for this and o.

    - #### __coerce__

          public final PyObject __coerce__(PyObject pyo)

      Equivalent to the standard Python __coerce__ method. This method can not be overridden. To implement __coerce__ functionality, override __coerce_ex__ instead. Also, do not call this method from exposed 'coerce' methods. Instead, Use adaptToCoerceTuple over the result of the overriden __coerce_ex__.
      Parameters:
        `pyo` - the other object involved in the coercion.
      Returns:
        a tuple of this object and pyo coerced to the same type or Py.NotImplemented if no coercion is possible.
      See Also:
        `__coerce_ex__(org.python.core.PyObject)`

    - #### __cmp__

          public int __cmp__(PyObject other)

      Equivalent to the standard Python __cmp__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        -1 if this < o; 0 if this == o; +1 if this > o; -2 if no comparison is implemented

    - #### __eq__

          public PyObject __eq__(PyObject other)

      Equivalent to the standard Python __eq__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __ne__

          public PyObject __ne__(PyObject other)

      Equivalent to the standard Python __ne__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __le__

          public PyObject __le__(PyObject other)

      Equivalent to the standard Python __le__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __lt__

          public PyObject __lt__(PyObject other)

      Equivalent to the standard Python __lt__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __ge__

          public PyObject __ge__(PyObject other)

      Equivalent to the standard Python __ge__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __gt__

          public PyObject __gt__(PyObject other)

      Equivalent to the standard Python __gt__ method.
      Parameters:
        `other` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### _cmp

          public final int _cmp(PyObject o)

      Implements cmp(this, other)
      Parameters:
        `o` - the object to compare this with.
      Returns:
        -1 if this < 0; 0 if this == o; +1 if this > o

    - #### _eq

          public final PyObject _eq(PyObject o)

      Implements the Python expression `this == other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _ne

          public final PyObject _ne(PyObject o)

      Implements the Python expression `this != other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _le

          public final PyObject _le(PyObject o)

      Implements the Python expression `this <= other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _lt

          public final PyObject _lt(PyObject o)

      Implements the Python expression `this < other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _ge

          public final PyObject _ge(PyObject o)

      Implements the Python expression `this >= other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _gt

          public final PyObject _gt(PyObject o)

      Implements the Python expression `this > other`.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _is

          public PyObject _is(PyObject o)

      Implements `is` operator.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _isnot

          public PyObject _isnot(PyObject o)

      Implements `is not` operator.
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison

    - #### _in

          public final PyObject _in(PyObject o)

      Implements `in` operator.
      Parameters:
        `o` - the container to search for this element.
      Returns:
        the result of the search.

    - #### _notin

          public final PyObject _notin(PyObject o)

      Implements `not in` operator.
      Parameters:
        `o` - the container to search for this element.
      Returns:
        the result of the search.

    - #### __contains__

          public boolean __contains__(PyObject o)

      Equivalent to the standard Python __contains__ method.
      Parameters:
        `o` - the element to search for in this container.
      Returns:
        the result of the search.

    - #### __format__

          public PyObject __format__(PyObject formatSpec)

    - #### __not__

          public PyObject __not__()

      Implements boolean not
      Returns:
        not this.

    - #### __hex__

          public PyString __hex__()

      Equivalent to the standard Python __hex__ method Should only be overridden by numeric objects that can be reasonably represented as a hexadecimal string.
      Returns:
        a string representing this object as a hexadecimal number.

    - #### __oct__

          public PyString __oct__()

      Equivalent to the standard Python __oct__ method. Should only be overridden by numeric objects that can be reasonably represented as an octal string.
      Returns:
        a string representing this object as an octal number.

    - #### __int__

          public PyObject __int__()

      Equivalent to the standard Python __int__ method. Should only be overridden by numeric objects that can be reasonably coerced into an integer.
      Returns:
        an integer corresponding to the value of this object.

    - #### __long__

          public PyObject __long__()

      Equivalent to the standard Python __long__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python long.
      Returns:
        a PyLong or PyInteger corresponding to the value of this object.

    - #### __float__

          public PyFloat __float__()

      Equivalent to the standard Python __float__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python float.
      Returns:
        a float corresponding to the value of this object.

    - #### __complex__

          public PyComplex __complex__()

      Equivalent to the standard Python __complex__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python complex number.
      Returns:
        a complex number corresponding to the value of this object.

    - #### __trunc__

          public PyObject __trunc__()

      Equivalent to the standard Python __trunc__ method. Should only be overridden by numeric objects that can reasonably be truncated to an Integral.
      Returns:
        the Integral closest to x between 0 and x.

    - #### conjugate

          public PyObject conjugate()

      Equivalent to the standard Python conjugate method. Should only be overridden by numeric objects that can calculate a complex conjugate.
      Returns:
        the complex conjugate.

    - #### bit_length

          public int bit_length()

      Equivalent to the standard Python bit_length method. Should only be overridden by numeric objects that can calculate a bit_length.
      Returns:
        the bit_length of this object.

    - #### __pos__

          public PyObject __pos__()

      Equivalent to the standard Python __pos__ method.
      Returns:
        +this.

    - #### __neg__

          public PyObject __neg__()

      Equivalent to the standard Python __neg__ method.
      Returns:
        -this.

    - #### __abs__

          public PyObject __abs__()

      Equivalent to the standard Python __abs__ method.
      Returns:
        abs(this).

    - #### __invert__

          public PyObject __invert__()

      Equivalent to the standard Python __invert__ method.
      Returns:
        ~this.

    - #### __index__

          public PyObject __index__()

      Equivalent to the standard Python __index__ method.
      Returns:
        a PyInteger or PyLong
      Throws:
        `a` - Py.TypeError if not supported

    - #### __pow__

          public PyObject __pow__(PyObject o2,
                         PyObject o3)

      Implements the three argument power function.
      Parameters:
        `o2` - the power to raise this number to.
        `o3` - the modulus to perform this operation in or null if no modulo is to be used
      Returns:
        this object raised to the given power in the given modulus

    - #### __add__

          public PyObject __add__(PyObject other)

      Equivalent to the standard Python __add__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the add, or null if this operation is not defined.

    - #### __radd__

          public PyObject __radd__(PyObject other)

      Equivalent to the standard Python __radd__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the add, or null if this operation is not defined.

    - #### __iadd__

          public PyObject __iadd__(PyObject other)

      Equivalent to the standard Python __iadd__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the iadd, or null if this operation is not defined

    - #### _add

          public final PyObject _add(PyObject o2)

      Implements the Python expression `this + o2`.
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the add.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _iadd

          public final PyObject _iadd(PyObject o2)

      Implements the Python expression `this += o2`.
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the iadd.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __sub__

          public PyObject __sub__(PyObject other)

      Equivalent to the standard Python __sub__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the sub, or null if this operation is not defined

    - #### __rsub__

          public PyObject __rsub__(PyObject other)

      Equivalent to the standard Python __rsub__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the sub, or null if this operation is not defined.

    - #### __isub__

          public PyObject __isub__(PyObject other)

      Equivalent to the standard Python __isub__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the isub, or null if this operation is not defined

    - #### _sub

          public final PyObject _sub(PyObject o2)

      Implements the Python expression `this - o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the sub.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _isub

          public final PyObject _isub(PyObject o2)

      Implements the Python expression `this -= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the isub.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __mul__

          public PyObject __mul__(PyObject other)

      Equivalent to the standard Python __mul__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the mul, or null if this operation is not defined

    - #### __rmul__

          public PyObject __rmul__(PyObject other)

      Equivalent to the standard Python __rmul__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the mul, or null if this operation is not defined.

    - #### __imul__

          public PyObject __imul__(PyObject other)

      Equivalent to the standard Python __imul__ method.
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the imul, or null if this operation is not defined.

    - #### _mul

          public final PyObject _mul(PyObject o2)

      Implements the Python expression `this * o2`.
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the mul.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _imul

          public final PyObject _imul(PyObject o2)

      Implements the Python expression `this *= o2`.
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the imul.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __div__

          public PyObject __div__(PyObject other)

      Equivalent to the standard Python __div__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the div, or null if this operation is not defined

    - #### __rdiv__

          public PyObject __rdiv__(PyObject other)

      Equivalent to the standard Python __rdiv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the div, or null if this operation is not defined.

    - #### __idiv__

          public PyObject __idiv__(PyObject other)

      Equivalent to the standard Python __idiv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the idiv, or null if this operation is not defined

    - #### _div

          public final PyObject _div(PyObject o2)

      Implements the Python expression `this / o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the div.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _idiv

          public final PyObject _idiv(PyObject o2)

      Implements the Python expression `this /= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the idiv.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __floordiv__

          public PyObject __floordiv__(PyObject other)

      Equivalent to the standard Python __floordiv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the floordiv, or null if this operation is not defined

    - #### __rfloordiv__

          public PyObject __rfloordiv__(PyObject other)

      Equivalent to the standard Python __rfloordiv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the floordiv, or null if this operation is not defined.

    - #### __ifloordiv__

          public PyObject __ifloordiv__(PyObject other)

      Equivalent to the standard Python __ifloordiv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the ifloordiv, or null if this operation is not defined

    - #### _floordiv

          public final PyObject _floordiv(PyObject o2)

      Implements the Python expression `this // o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the floordiv.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _ifloordiv

          public final PyObject _ifloordiv(PyObject o2)

      Implements the Python expression `this //= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the ifloordiv.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __truediv__

          public PyObject __truediv__(PyObject other)

      Equivalent to the standard Python __truediv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the truediv, or null if this operation is not defined

    - #### __rtruediv__

          public PyObject __rtruediv__(PyObject other)

      Equivalent to the standard Python __rtruediv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the truediv, or null if this operation is not defined.

    - #### __itruediv__

          public PyObject __itruediv__(PyObject other)

      Equivalent to the standard Python __itruediv__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the itruediv, or null if this operation is not defined

    - #### _truediv

          public final PyObject _truediv(PyObject o2)

      Implements the Python expression `this / o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the truediv.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _itruediv

          public final PyObject _itruediv(PyObject o2)

      Implements the Python expression `this /= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the itruediv.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __mod__

          public PyObject __mod__(PyObject other)

      Equivalent to the standard Python __mod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the mod, or null if this operation is not defined

    - #### __rmod__

          public PyObject __rmod__(PyObject other)

      Equivalent to the standard Python __rmod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the mod, or null if this operation is not defined.

    - #### __imod__

          public PyObject __imod__(PyObject other)

      Equivalent to the standard Python __imod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the imod, or null if this operation is not defined

    - #### _mod

          public final PyObject _mod(PyObject o2)

      Implements the Python expression `this % o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the mod.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _imod

          public final PyObject _imod(PyObject o2)

      Implements the Python expression `this %= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the imod.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __divmod__

          public PyObject __divmod__(PyObject other)

      Equivalent to the standard Python __divmod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the divmod, or null if this operation is not defined

    - #### __rdivmod__

          public PyObject __rdivmod__(PyObject other)

      Equivalent to the standard Python __rdivmod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the divmod, or null if this operation is not defined.

    - #### __idivmod__

          public PyObject __idivmod__(PyObject other)

      Equivalent to the standard Python __idivmod__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the idivmod, or null if this operation is not defined

    - #### _divmod

          public final PyObject _divmod(PyObject o2)

      Implements the Python expression `this divmod o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the divmod.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _idivmod

          public final PyObject _idivmod(PyObject o2)

      Implements the Python expression `this divmod= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the idivmod.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __pow__

          public PyObject __pow__(PyObject other)

      Equivalent to the standard Python __pow__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the pow, or null if this operation is not defined

    - #### __rpow__

          public PyObject __rpow__(PyObject other)

      Equivalent to the standard Python __rpow__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the pow, or null if this operation is not defined.

    - #### __ipow__

          public PyObject __ipow__(PyObject other)

      Equivalent to the standard Python __ipow__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the ipow, or null if this operation is not defined

    - #### _pow

          public final PyObject _pow(PyObject o2)

      Implements the Python expression `this ** o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the pow.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _ipow

          public final PyObject _ipow(PyObject o2)

      Implements the Python expression `this **= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the ipow.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __lshift__

          public PyObject __lshift__(PyObject other)

      Equivalent to the standard Python __lshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the lshift, or null if this operation is not defined

    - #### __rlshift__

          public PyObject __rlshift__(PyObject other)

      Equivalent to the standard Python __rlshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the lshift, or null if this operation is not defined.

    - #### __ilshift__

          public PyObject __ilshift__(PyObject other)

      Equivalent to the standard Python __ilshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the ilshift, or null if this operation is not defined

    - #### _lshift

          public final PyObject _lshift(PyObject o2)

      Implements the Python expression `this << o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the lshift.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _ilshift

          public final PyObject _ilshift(PyObject o2)

      Implements the Python expression `this <<= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the ilshift.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __rshift__

          public PyObject __rshift__(PyObject other)

      Equivalent to the standard Python __rshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the rshift, or null if this operation is not defined

    - #### __rrshift__

          public PyObject __rrshift__(PyObject other)

      Equivalent to the standard Python __rrshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the rshift, or null if this operation is not defined.

    - #### __irshift__

          public PyObject __irshift__(PyObject other)

      Equivalent to the standard Python __irshift__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the irshift, or null if this operation is not defined

    - #### _rshift

          public final PyObject _rshift(PyObject o2)

      Implements the Python expression `this >> o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the rshift.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _irshift

          public final PyObject _irshift(PyObject o2)

      Implements the Python expression `this >>= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the irshift.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __and__

          public PyObject __and__(PyObject other)

      Equivalent to the standard Python __and__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the and, or null if this operation is not defined

    - #### __rand__

          public PyObject __rand__(PyObject other)

      Equivalent to the standard Python __rand__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the and, or null if this operation is not defined.

    - #### __iand__

          public PyObject __iand__(PyObject other)

      Equivalent to the standard Python __iand__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the iand, or null if this operation is not defined

    - #### _and

          public final PyObject _and(PyObject o2)

      Implements the Python expression `this & o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the and.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _iand

          public final PyObject _iand(PyObject o2)

      Implements the Python expression `this &= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the iand.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __or__

          public PyObject __or__(PyObject other)

      Equivalent to the standard Python __or__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the or, or null if this operation is not defined

    - #### __ror__

          public PyObject __ror__(PyObject other)

      Equivalent to the standard Python __ror__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the or, or null if this operation is not defined.

    - #### __ior__

          public PyObject __ior__(PyObject other)

      Equivalent to the standard Python __ior__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the ior, or null if this operation is not defined

    - #### _or

          public final PyObject _or(PyObject o2)

      Implements the Python expression `this | o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the or.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _ior

          public final PyObject _ior(PyObject o2)

      Implements the Python expression `this |= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the ior.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### __xor__

          public PyObject __xor__(PyObject other)

      Equivalent to the standard Python __xor__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the xor, or null if this operation is not defined

    - #### __rxor__

          public PyObject __rxor__(PyObject other)

      Equivalent to the standard Python __rxor__ method
      Parameters:
        `other` - the object to perform this binary operation with (the left-hand operand).
      Returns:
        the result of the xor, or null if this operation is not defined.

    - #### __ixor__

          public PyObject __ixor__(PyObject other)

      Equivalent to the standard Python __ixor__ method
      Parameters:
        `other` - the object to perform this binary operation with (the right-hand operand).
      Returns:
        the result of the ixor, or null if this operation is not defined

    - #### _xor

          public final PyObject _xor(PyObject o2)

      Implements the Python expression `this ^ o2`
      Parameters:
        `o2` - the object to perform this binary operation with.
      Returns:
        the result of the xor.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _ixor

          public final PyObject _ixor(PyObject o2)

      Implements the Python expression `this ^= o2`
      Parameters:
        `o2` - the object to perform this inplace binary operation with.
      Returns:
        the result of the ixor.
      Throws:
        `Py.TypeError` - if this operation can't be performed with these operands.

    - #### _jcallexc

          public PyObject _jcallexc(Object[] args)
                             throws Throwable

      A convenience function for PyProxys.
      Throws:
        `Throwable`

    - #### _jthrow

          public void _jthrow(Throwable t)

    - #### _jcall

          public PyObject _jcall(Object[] args)

    - #### invoke

          public PyObject invoke(String name,
                        PyObject[] args,
                        String[] keywords)

      Shortcut for calling a method on a PyObject from Java. This form is equivalent to o.__getattr__(name).__call__(args, keywords)
      Parameters:
        `name` - the name of the method to call. This must be an interned string!
        `args` - an array of the arguments to the call.
        `keywords` - the keywords to use in the call.
      Returns:
        the result of calling the method name with args and keywords.

    - #### invoke

          public PyObject invoke(String name,
                        PyObject[] args)

    - #### invoke

          public PyObject invoke(String name)

      Shortcut for calling a method on a PyObject with no args.
      Parameters:
        `name` - the name of the method to call. This must be an interned string!
      Returns:
        the result of calling the method name with no args

    - #### invoke

          public PyObject invoke(String name,
                        PyObject arg1)

      Shortcut for calling a method on a PyObject with one arg.
      Parameters:
        `name` - the name of the method to call. This must be an interned string!
        `arg1` - the one argument of the method.
      Returns:
        the result of calling the method name with arg1

    - #### invoke

          public PyObject invoke(String name,
                        PyObject arg1,
                        PyObject arg2)

      Shortcut for calling a method on a PyObject with two args.
      Parameters:
        `name` - the name of the method to call. This must be an interned string!
        `arg1` - the first argument of the method.
        `arg2` - the second argument of the method.
      Returns:
        the result of calling the method name with arg1 and arg2

    - #### invoke

          public PyObject invoke(String name,
                        PyObject arg1,
                        PyObject[] args,
                        String[] keywords)

      Shortcut for calling a method on a PyObject with one extra initial argument.
      Parameters:
        `name` - the name of the method to call. This must be an interned string!
        `arg1` - the first argument of the method.
        `args` - an array of the arguments to the call.
        `keywords` - the keywords to use in the call.
      Returns:
        the result of calling the method name with arg1 args and keywords

    - #### fastGetDict

          public PyObject fastGetDict()

      xxx implements where meaningful
      Returns:
        internal object per instance dict or null

    - #### getDict

          public PyObject getDict()

      xxx implements where meaningful
      Returns:
        internal object __dict__ or null

    - #### setDict

          public void setDict(PyObject newDict)

    - #### delDict

          public void delDict()

    - #### implementsDescrGet

          public boolean implementsDescrGet()

    - #### implementsDescrSet

          public boolean implementsDescrSet()

    - #### implementsDescrDelete

          public boolean implementsDescrDelete()

    - #### isDataDescr

          public boolean isDataDescr()

    - #### __get__

          public PyObject __get__(PyObject obj,
                         PyObject type)

      Get descriptor for this PyObject.
      Parameters:
        `obj` - - the instance accessing this descriptor. Can be null if this is being accessed by a type.
        `type` - - the type accessing this descriptor. Will be null if obj exists as obj is of the type accessing the descriptor.
      Returns:
        - the object defined for this descriptor for the given obj and type.

    - #### __set__

          public void __set__(PyObject obj,
                     PyObject value)

    - #### __delete__

          public void __delete__(PyObject obj)

    - #### asName

          public static final String asName(PyObject obj)

    - #### __reduce__

          public PyObject __reduce__()

      Used for pickling. Default implementation calls object___reduce__.
      Returns:
        a tuple of (class, tuple)

    - #### __reduce_ex__

          public PyObject __reduce_ex__(int arg)

      Used for pickling. If the subclass specifies __reduce__, it will override __reduce_ex__ in the base-class, even if __reduce_ex__ was called with an argument.
      Parameters:
        `arg` - PyInteger specifying reduce algorithm (method without this argument defaults to 0).
      Returns:
        a tuple of (class, tuple)

    - #### __reduce_ex__

          public PyObject __reduce_ex__()

    - #### __getnewargs__

          public PyTuple __getnewargs__()

    - #### object___subclasshook__

          public static PyObject object___subclasshook__(PyType type,
                                         PyObject subclass)

    - #### asString

          public String asString(int index)
                          throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asString

          public String asString()

    - #### asStringOrNull

          public String asStringOrNull(int index)
                                throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asStringOrNull

          public String asStringOrNull()

    - #### asName

          public String asName(int index)
                        throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asInt

          public int asInt(int index)
                    throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asInt

          public int asInt()

      Convert this object into an int. Throws a PyException on failure.
      Returns:
        an int value

    - #### asLong

          public long asLong(int index)
                      throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asLong

          public long asLong()

      Convert this object longo an long. Throws a PyException on failure.
      Returns:
        an long value

    - #### asDouble

          public double asDouble()

      Convert this object into a double. Throws a PyException on failure.
      Returns:
        a double value

    - #### asIndex

          public int asIndex()

      Convert this object into an index-sized integer. Throws a PyException on failure.
      Returns:
        an index-sized int

    - #### asIndex

          public int asIndex(PyObject err)

      Convert this object into an index-sized integer. Throws a Python exception on Overflow if specified an exception type for err.
      Parameters:
        `err` - the Python exception to raise on OverflowErrors
      Returns:
        an index-sized int

Jython homepage