Package org.python.core

# Class PyFunction

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

All Implemented Interfaces:
  `Serializable`, `InvocationHandler`, `Traverseproc`

public class PyFunction extends PyObject implements InvocationHandler, Traverseproc
A Python function.

See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class org.python.core.PyObject

`PyObject.ConversionException`

## Field Summary

Fields
Modifier and Type
Field
Description
`PyObject`
`__closure__`
A read only closure tuple for nested scopes.
`PyCode`
`__code__`
The actual function's code, writable.
`PyObject[]`
`__defaults__`
Default argument values for associated kwargs.
`PyObject`
`__dict__`
A function's lazily created __dict__; allows arbitrary attributes to be tacked on.
`PyObject`
`__doc__`
The writable doc string, also available via func_doc.
`PyObject`
`__globals__`
The read only namespace; a dict (PyStringMap).
`PyObject`
`__module__`
Writable object describing what module this function belongs to.
`String`
`__name__`
The writable name, also available via func_name.
`static final PyType`
`TYPE`

### Fields inherited from class org.python.core.PyObject

`gcMonitorGlobal`

## Constructor Summary

Constructors
Constructor
Description
`PyFunction(PyObject globals, PyObject[] defaults, PyCode code)`
`PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject doc)`
`PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject[] closure_cells)`
`PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject doc, PyObject[] closure_cells)`

## Method Summary

Modifier and Type
Method
Description
`PyObject`
`__call__()`
A variant of the __call__ method with no arguments.
`PyObject`
`__call__(PyObject arg)`
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 arg1, PyObject arg2)`
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 arg1, PyObject arg2, PyObject arg3)`
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)`
`PyObject`
`__get__(PyObject obj, PyObject type)`
Get descriptor for this PyObject.
`PyString`
`__repr__()`
Equivalent to the standard Python `__repr__` method.
`void`
`__setattr__(String name, PyObject value)`
A variant of the __setattr__ method which accepts a String as the key.
`Object`
`__tojava__(Class<?> c)`
Equivalent to the Jython __tojava__ method.
`void`
`delClosure()`
`void`
`delDefaults()`
`void`
`delDict()`
`void`
`delDoc()`
`void`
`delFuncClosure()`
Deprecated.
`void`
`delFuncDefaults()`
Deprecated.
`void`
`delFuncDict()`
Deprecated.
`void`
`delFuncDoc()`
Deprecated.
`void`
`delFuncGlobals()`
Deprecated.
`void`
`delFuncName()`
Deprecated.
`void`
`delGlobals()`
`void`
`delModule()`
`void`
`delName()`
`PyObject`
`fastGetDict()`
xxx implements where meaningful
`PyObject`
`getDefaults()`
`PyObject`
`getDict()`
xxx implements where meaningful
`PyObject`
`getFuncClosure()`
Deprecated.
`PyCode`
`getFuncCode()`
Deprecated.
`PyObject`
`getFuncDefaults()`
Deprecated.
`PyObject`
`getFuncDict()`
Deprecated.
`PyObject`
`getFuncDoc()`
Deprecated.
`PyObject`
`getFuncGlobals()`
Deprecated.
`String`
`getFuncName()`
Deprecated.
`Object`
`invoke(Object proxy, Method method, Object[] args)`
`boolean`
`isMappingType()`
`boolean`
`isNumberType()`
`boolean`
`isSequenceType()`
`boolean`
`refersDirectlyTo(PyObject ob)`
Optional operation.
`void`
`setClosure(PyObject value)`
`void`
`setCode(PyCode code)`
`void`
`setDefaults(PyObject func_defaults)`
`void`
`setDict(PyObject value)`
`void`
`setFuncClosure(PyObject value)`
Deprecated.
`void`
`setFuncCode(PyCode code)`
Deprecated.
`void`
`setFuncDefaults(PyObject func_defaults)`
Deprecated.
`void`
`setFuncDict(PyObject value)`
Deprecated.
`void`
`setFuncDoc(PyObject func_doc)`
Deprecated.
`void`
`setFuncGlobals(PyObject value)`
Deprecated.
`void`
`setFuncName(String func_name)`
Deprecated.
`void`
`setGlobals(PyObject value)`
`void`
`setName(String func_name)`
`String`
`toString()`
`int`
`traverse(Visitproc visit, Object arg)`
Traverses all directly contained `PyObject`s.

### Methods inherited from class org.python.core.PyObject

`__abs__, __add__, __and__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __ge__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __gt__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iter__, __iternext__, __itruediv__, __ixor__, __le__, __len__, __long__, __lshift__, __lt__, __mod__, __mul__, __ne__, __neg__, __nonzero__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setitem__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delType, dispatch__init__, equals, fastGetClass, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, noAttributeError, object___subclasshook__, readonlyAttributeError, setType`

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

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

## Field Details

### TYPE

public static final PyType TYPE

### __name__

public String __name__
The writable name, also available via func_name.

### __doc__

public PyObject __doc__
The writable doc string, also available via func_doc.

### __globals__

public PyObject __globals__
The read only namespace; a dict (PyStringMap).

### __defaults__

public PyObject[] __defaults__
Default argument values for associated kwargs. Exposed as a tuple to Python. Writable.

### __code__

public PyCode __code__
The actual function's code, writable.

### __dict__

public PyObject __dict__
A function's lazily created __dict__; allows arbitrary attributes to be tacked on. Read only.

### __closure__

public PyObject __closure__
A read only closure tuple for nested scopes.

### __module__

public PyObject __module__
Writable object describing what module this function belongs to.

## Constructor Details

### PyFunction

public PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject doc, PyObject[] closure_cells)

### PyFunction

public PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject doc)

### PyFunction

public PyFunction(PyObject globals, PyObject[] defaults, PyCode code)

### PyFunction

public PyFunction(PyObject globals, PyObject[] defaults, PyCode code, PyObject[] closure_cells)

## Method Details

### setName

public void setName(String func_name)

### delName

public void delName()

### getFuncName

@Deprecated public String getFuncName()
Deprecated.

### setFuncName

@Deprecated public void setFuncName(String func_name)
Deprecated.

### delFuncName

@Deprecated public void delFuncName()
Deprecated.

### getFuncDoc

@Deprecated public PyObject getFuncDoc()
Deprecated.

### setFuncDoc

@Deprecated public void setFuncDoc(PyObject func_doc)
Deprecated.

### delFuncDoc

@Deprecated public void delFuncDoc()
Deprecated.

### delDoc

public void delDoc()

### getDefaults

public PyObject getDefaults()

### setDefaults

public void setDefaults(PyObject func_defaults)

### delDefaults

public void delDefaults()

### getFuncDefaults

@Deprecated public PyObject getFuncDefaults()
Deprecated.

### setFuncDefaults

@Deprecated public void setFuncDefaults(PyObject func_defaults)
Deprecated.

### delFuncDefaults

@Deprecated public void delFuncDefaults()
Deprecated.

### getFuncCode

@Deprecated public PyCode getFuncCode()
Deprecated.

### setFuncCode

@Deprecated public void setFuncCode(PyCode code)
Deprecated.

### setCode

public void setCode(PyCode code)

### delModule

public void delModule()

### fastGetDict

public PyObject fastGetDict()
Description copied from class: `PyObject`
xxx implements where meaningful

Overrides:
  `fastGetDict` in class `PyObject`
Returns:
  internal object per instance dict or null

### getDict

public PyObject getDict()
Description copied from class: `PyObject`
xxx implements where meaningful

Overrides:
  `getDict` in class `PyObject`
Returns:
  internal object __dict__ or null

### setDict

public void setDict(PyObject value)

Overrides:
  `setDict` in class `PyObject`

### delDict

public void delDict()

Overrides:
  `delDict` in class `PyObject`

### getFuncDict

@Deprecated public PyObject getFuncDict()
Deprecated.

### setFuncDict

@Deprecated public void setFuncDict(PyObject value)
Deprecated.

### delFuncDict

@Deprecated public void delFuncDict()
Deprecated.

### setGlobals

public void setGlobals(PyObject value)

### delGlobals

public void delGlobals()

### getFuncGlobals

@Deprecated public PyObject getFuncGlobals()
Deprecated.

### setFuncGlobals

@Deprecated public void setFuncGlobals(PyObject value)
Deprecated.

### delFuncGlobals

@Deprecated public void delFuncGlobals()
Deprecated.

### setClosure

public void setClosure(PyObject value)

### delClosure

public void delClosure()

### getFuncClosure

@Deprecated public PyObject getFuncClosure()
Deprecated.

### setFuncClosure

@Deprecated public void setFuncClosure(PyObject value)
Deprecated.

### delFuncClosure

@Deprecated public void delFuncClosure()
Deprecated.

### __setattr__

public void __setattr__(String name, PyObject value)
Description copied from class: `PyObject`
A variant of the __setattr__ method which accepts a String as the key. This String must be interned.

Overrides:
  `__setattr__` in class `PyObject`
Parameters:
  `name` - the name whose value will be set - must be an interned string .
  `value` - the value to set this name to
See Also:
  - `PyObject.__setattr__(PyString, PyObject)`

### __get__

public PyObject __get__(PyObject obj, PyObject type)
Description copied from class: `PyObject`
Get descriptor for this PyObject.

Overrides:
  `__get__` in class `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.

### __call__

public PyObject __call__()
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(ThreadState state)

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject arg)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
Parameters:
  `arg` - the single argument to the function.

### __call__

public PyObject __call__(ThreadState state, PyObject arg0)

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject arg1, PyObject arg2)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
Parameters:
  `arg1` - the first argument to the function.
  `arg2` - the second argument to the function.

### __call__

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

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject arg1, PyObject arg2, PyObject arg3)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
Parameters:
  `arg1` - the first argument to the function.
  `arg2` - the second argument to the function.
  `arg3` - the third argument to the function.

### __call__

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

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject arg0, PyObject arg1, PyObject arg2, PyObject arg3)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
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)

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject[] args)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
Parameters:
  `args` - all arguments to the function.

### __call__

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

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject[] args, String[] keywords)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
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)

Overrides:
  `__call__` in class `PyObject`

### __call__

public PyObject __call__(PyObject arg1, PyObject[] args, String[] keywords)
Description copied from class: `PyObject`
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.

Overrides:
  `__call__` in class `PyObject`
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)

Overrides:
  `__call__` in class `PyObject`

### __repr__

public PyString __repr__()
Description copied from class: `PyObject`
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.

Overrides:
  `__repr__` in class `PyObject`

### toString

public String toString()

Overrides:
  `toString` in class `PyObject`

### __tojava__

public Object __tojava__(Class<?> c)
Description copied from class: `PyObject`
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.

Overrides:
  `__tojava__` in class `PyObject`
Parameters:
  `c` - the Class to convert this `PyObject` to.

### invoke

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable

Specified by:
  `invoke` in interface `InvocationHandler`
Throws:
  `Throwable`

### isMappingType

public boolean isMappingType()

Overrides:
  `isMappingType` in class `PyObject`

### isNumberType

public boolean isNumberType()

Overrides:
  `isNumberType` in class `PyObject`

### isSequenceType

public boolean isSequenceType()

Overrides:
  `isSequenceType` in class `PyObject`

### traverse

public int traverse(Visitproc visit, Object arg)
Description copied from interface: `Traverseproc`
Traverses all directly contained `PyObject`s. Like in CPython, `arg` must be passed unmodified to `visit` as its second parameter. If `Visitproc.visit(PyObject, Object)` returns nonzero, this return value must be returned immediately by traverse. `Visitproc.visit(PyObject, Object)` must not be called with a `null` PyObject-argument.

Specified by:
  `traverse` in interface `Traverseproc`

### refersDirectlyTo

public boolean refersDirectlyTo(PyObject ob)
Description copied from interface: `Traverseproc`
Optional operation. Should only be implemented if it is more efficient than calling `Traverseproc.traverse(Visitproc, Object)` with a visitproc that just watches out for `ob`. Must return `false` if `ob` is `null`.

Specified by:
  `refersDirectlyTo` in interface `Traverseproc`