Package 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`, `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 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
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 final PyType`
`TYPE`

## Constructor Summary

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

## Method Summary

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, 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.
`final 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__(String name)`
A variant of the __delattr__ method which accepts a String as the key.
`final void`
`__delattr__(PyString name)`
Equivalent to the standard Python __delattr__ method.
`void`
`__delete__(PyObject obj)`
`void`
`__delitem__(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.
`final PyObject`
`__findattr__(String name)`
A variant of the __findattr__ method which accepts a Java `String` as the name.
`final PyObject`
`__findattr__(PyString name)`
Very similar to the standard Python __getattr__ method.
`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__(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.
`final PyObject`
`__getattr__(String name)`
A variant of the __getattr__ method which accepts a Java `String` as the name.
`final 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.
`final 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__(String name, PyObject value)`
A variant of the __setattr__ method which accepts a String as the key.
`final 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__(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
`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
`final PyObject`
`_add(PyObject o2)`
Implements the Python expression `this + o2`.
`final PyObject`
`_and(PyObject o2)`
Implements the Python expression `this & o2`
`PyObject`
`_callextra(PyObject[] args, String[] keywords, PyObject starargs, PyObject kwargs)`
`final int`
`_cmp(PyObject o)`
Implements cmp(this, other)
`final PyObject`
`_div(PyObject o2)`
Implements the Python expression `this / o2`
`final 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)`
`final PyObject`
`_eq(PyObject o)`
Implements the Python expression `this == other`.
`final PyObject`
`_floordiv(PyObject o2)`
Implements the Python expression `this // o2`
`final PyObject`
`_ge(PyObject o)`
Implements the Python expression `this >= other`.
`final PyObject`
`_gt(PyObject o)`
Implements the Python expression `this > other`.
`final PyObject`
`_iadd(PyObject o2)`
Implements the Python expression `this += o2`.
`final PyObject`
`_iand(PyObject o2)`
Implements the Python expression `this &= o2`
`final PyObject`
`_idiv(PyObject o2)`
Implements the Python expression `this /= o2`
`final PyObject`
`_idivmod(PyObject o2)`
Implements the Python expression `this divmod= o2`
`final PyObject`
`_ifloordiv(PyObject o2)`
Implements the Python expression `this //= o2`
`final PyObject`
`_ilshift(PyObject o2)`
Implements the Python expression `this <<= o2`
`final PyObject`
`_imod(PyObject o2)`
Implements the Python expression `this %= o2`
`final PyObject`
`_imul(PyObject o2)`
Implements the Python expression `this *= o2`.
`final PyObject`
`_in(PyObject o)`
Implements `in` operator.
`final PyObject`
`_ior(PyObject o2)`
Implements the Python expression `this |= o2`
`final PyObject`
`_ipow(PyObject o2)`
Implements the Python expression `this **= o2`
`final 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.
`final PyObject`
`_isub(PyObject o2)`
Implements the Python expression `this -= o2`
`final PyObject`
`_itruediv(PyObject o2)`
Implements the Python expression `this /= o2`
`final 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)`
`final PyObject`
`_le(PyObject o)`
Implements the Python expression `this <= other`.
`final PyObject`
`_lshift(PyObject o2)`
Implements the Python expression `this << o2`
`final PyObject`
`_lt(PyObject o)`
Implements the Python expression `this < other`.
`final PyObject`
`_mod(PyObject o2)`
Implements the Python expression `this % o2`
`final PyObject`
`_mul(PyObject o2)`
Implements the Python expression `this * o2`.
`final PyObject`
`_ne(PyObject o)`
Implements the Python expression `this != other`.
`final PyObject`
`_notin(PyObject o)`
Implements `not in` operator.
`final PyObject`
`_or(PyObject o2)`
Implements the Python expression `this | o2`
`final PyObject`
`_pow(PyObject o2)`
Implements the Python expression `this ** o2`
`final PyObject`
`_rshift(PyObject o2)`
Implements the Python expression `this >> o2`
`final PyObject`
`_sub(PyObject o2)`
Implements the Python expression `this - o2`
`final PyObject`
`_truediv(PyObject o2)`
Implements the Python expression `this / o2`
`final 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 into a long.
`long`
`asLong(int index)`
`String`
`asName(int index)`
`static final 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 Details

### 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 Details

### 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 Details

### 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. Each sub-class of `PyObject` is likely to re-define this method to provide for its own reproduction.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### __str__

public PyString __str__()
Equivalent to the standard Python __str__ method. The default implementation (in `PyObject`) calls `__repr__()`, making it unnecessary to override `__str__` in sub-classes of `PyObject` where both forms are the same. A common choice is to provide the same implementation to `__str__` and `toString`, for consistency in the printed form of objects between Python and Java.

### __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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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 something 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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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 overridden __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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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:
  `PyException` - `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 into a 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