Package org.python.core

## Class PyObject

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

- All Implemented Interfaces:
    `java.io.Serializable`
  Direct Known Subclasses:
    `_codecs.EncodingMap`, `_hashlib.Hash`, `_marshal.Marshaller`, `_marshal.Unmarshaller`, `AbstractDict`, `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`, `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`, `PyStruct`, `PySuper`, `PySystemState`, `PyTraceback`, `PyType`, `PyWriter`, `RLock`, `Scanner`, `ScannerObject`, `set_builder`, `StructLayout.Field`, `synchronize.SynchronizedCallable`, `zxJDBC`

      public class PyObject
      extends java.lang.Object
      implements java.io.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 | Description
    --- | --- | ---
    `static class` | `PyObject.ConversionException` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | 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 | Description
    --- | ---
    `PyObject()` | The standard constructor for a `PyObject`.
    `PyObject​(PyType objtype)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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, java.lang.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, java.lang.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, java.lang.String[] keywords)` |
    `PyObject` | `__call__​(ThreadState state, PyObject arg0, PyObject arg1)` |
    `PyObject` | `__call__​(ThreadState state, PyObject arg1, PyObject[] args, java.lang.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.
    `java.lang.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__​(java.lang.String name)` | A variant of the __delattr__ method which accepts a String as the key.
    `void` | `__delattr__​(PyString name)` | Equivalent to the standard Python __delattr__ method.
    `void` | `__delete__​(PyObject obj)` |
    `void` | `__delitem__​(java.lang.String key)` | A variant of the __delitem__ method which accepts a String as the key.
    `void` | `__delitem__​(PyObject key)` | Equivalent to the standard Python __delitem__ method.
    `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__​(java.lang.String name)` | A variant of the __findattr__ method which accepts a Java `String` as the name.
    `PyObject` | `__findattr__​(PyString name)` | Very similar to the standard Python __getattr__ method.
    `PyObject` | `__findattr_ex__​(java.lang.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__​(java.lang.String key)` | A variant of the __finditem__ method which accepts a Java `String` as the key.
    `PyObject` | `__finditem__​(PyObject key)` | Very similar to the standard Python __getitem__ method.
    `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__​(java.lang.String name)` | A variant of the __getattr__ method which accepts a Java `String` as the name.
    `PyObject` | `__getattr__​(PyString name)` | Equivalent to the standard Python __getattr__ method.
    `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__​(java.lang.String name, PyObject value)` | A variant of the __setattr__ method which accepts a String as the key.
    `void` | `__setattr__​(PyString name, PyObject value)` | Equivalent to the standard Python __setattr__ method.
    `void` | `__setitem__​(int key, PyObject value)` | A variant of the __setitem__ method which accepts a primitive `int` as the key.
    `void` | `__setitem__​(java.lang.String key, PyObject value)` | A variant of the __setitem__ method which accepts a String as the key.
    `void` | `__setitem__​(PyObject key, PyObject value)` | Equivalent to the standard Python __setitem__ method.
    `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
    `java.lang.Object` | `__tojava__​(java.lang.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, java.lang.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​(java.lang.Object[] args)` |
    `PyObject` | `_jcallexc​(java.lang.Object[] args)` | A convenience function for PyProxys.
    `void` | `_jthrow​(java.lang.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)` |
    `java.lang.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)` |
    `java.lang.String` | `asName​(int index)` |
    `static java.lang.String` | `asName​(PyObject obj)` |
    `java.lang.String` | `asString()` |
    `java.lang.String` | `asString​(int index)` |
    `java.lang.String` | `asStringOrNull()` |
    `java.lang.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, java.lang.String[] keywords)` | Dispatch __init__ behavior
    `boolean` | `equals​(java.lang.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​(java.lang.String name)` | Shortcut for calling a method on a PyObject with no args.
    `PyObject` | `invoke​(java.lang.String name, PyObject arg1)` | Shortcut for calling a method on a PyObject with one arg.
    `PyObject` | `invoke​(java.lang.String name, PyObject[] args)` |
    `PyObject` | `invoke​(java.lang.String name, PyObject[] args, java.lang.String[] keywords)` | Shortcut for calling a method on a PyObject from Java.
    `PyObject` | `invoke​(java.lang.String name, PyObject arg1, PyObject arg2)` | Shortcut for calling a method on a PyObject with two args.
    `PyObject` | `invoke​(java.lang.String name, PyObject arg1, PyObject[] args, java.lang.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​(java.lang.String name)` |
    `static PyObject` | `object___subclasshook__​(PyType type, PyObject subclass)` |
    `void` | `readonlyAttributeError​(java.lang.String name)` |
    `void` | `setDict​(PyObject newDict)` |
    `void` | `setType​(PyType type)` |
    `java.lang.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,
                                       java.lang.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 java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.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 `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.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 `java.lang.Object`

    - #### __nonzero__

          public boolean __nonzero__()

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

    - #### __tojava__

          public java.lang.Object __tojava__​(java.lang.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,
                                   java.lang.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,
                                   java.lang.String[] keywords)

    - #### __call__

          public PyObject __call__​(PyObject arg1,
                                   PyObject[] args,
                                   java.lang.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,
                                   java.lang.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,
                                     java.lang.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__​(java.lang.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__​(java.lang.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__​(java.lang.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 java.lang.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__​(java.lang.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__​(java.lang.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__​(java.lang.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​(java.lang.String name)

    - #### readonlyAttributeError

          public void readonlyAttributeError​(java.lang.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__​(java.lang.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__​(java.lang.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 java.lang.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​(java.lang.Object[] args)
                             throws java.lang.Throwable

      A convenience function for PyProxys.
      Throws:
        `java.lang.Throwable`

    - #### _jthrow

          public void _jthrow​(java.lang.Throwable t)

    - #### _jcall

          public PyObject _jcall​(java.lang.Object[] args)

    - #### invoke

          public PyObject invoke​(java.lang.String name,
                                 PyObject[] args,
                                 java.lang.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​(java.lang.String name,
                                 PyObject[] args)

    - #### invoke

          public PyObject invoke​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String name,
                                 PyObject arg1,
                                 PyObject[] args,
                                 java.lang.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 java.lang.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 java.lang.String asString​(int index)
                                    throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asString

          public java.lang.String asString()

    - #### asStringOrNull

          public java.lang.String asStringOrNull​(int index)
                                          throws PyObject.ConversionException

      Throws:
        `PyObject.ConversionException`

    - #### asStringOrNull

          public java.lang.String asStringOrNull()

    - #### asName

          public java.lang.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