## org.python.core
Class PyFunction

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

All Implemented Interfaces:
  Serializable, InvocationHandler

    public class PyFunction

extends PyObject
implements InvocationHandler

A Python function.

See Also:
  Serialized Form

Nested Class Summary

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

Field Summary
`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` `__module__` Writable object describing what module this function belongs to.
`String` `__name__` The writable name, also available via func_name.
`PyObject` `func_closure` A read only closure tuple for nested scopes.
`PyCode` `func_code` The actual funtion's code, writable.
`PyObject[]` `func_defaults` Default argument values for associated kwargs.
`PyObject` `func_globals` The read only namespace; a dict (PyStringMap).
`static PyType` `TYPE`

Constructor Summary
`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
`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.
`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` `delDict()`
`void` `delDoc()`
`void` `delFuncDefaults()`
`void` `delFuncDict()`
`void` `delFuncDoc()`
`void` `delModule()`
`PyObject` `fastGetDict()` xxx implements where meaningful
`PyObject` `getDict()` xxx implements where meaningful
`PyObject` `getFuncDefaults()`
`PyObject` `getFuncDict()`
`PyObject` `getFuncDoc()`
`PyString` `getFuncName()`
`Object` `invoke(Object proxy, Method method, Object[] args)`
`boolean` `isMappingType()`
`boolean` `isNumberType()`
`boolean` `isSequenceType()`
`void` `setDict(PyObject value)`
`void` `setFuncClosure(PyObject value)`
`void` `setFuncCode(PyCode code)`
`void` `setFuncDefaults(PyObject func_defaults)`
`void` `setFuncDict(PyObject value)`
`void` `setFuncDoc(PyObject func_doc)`
`void` `setFuncGlobals(PyObject value)`
`void` `setFuncName(PyString func_name)`
`String` `toString()`

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__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __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__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setitem__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __truediv__, __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, delType, dispatch__init__, equals, fastGetClass, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, noAttributeError, readonlyAttributeError, setType`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, wait, wait, wait`

Field Detail

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

### func_globals

    public PyObject func_globals

  The read only namespace; a dict (PyStringMap).

### func_defaults

    public PyObject[] func_defaults

  Default argument values for associated kwargs. Exposed as a tuple to Python. Writable.

### func_code

    public PyCode func_code

  The actual funtion's code, writable.

### __dict__

    public PyObject __dict__

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

### func_closure

    public PyObject func_closure

  A read only closure tuple for nested scopes.

### __module__

    public PyObject __module__

  Writable object describing what module this function belongs to.

Constructor Detail

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

### getFuncName

    public PyString getFuncName()

### setFuncName

    public void setFuncName(PyString func_name)

### getFuncDoc

    public PyObject getFuncDoc()

### setFuncDoc

    public void setFuncDoc(PyObject func_doc)

### delFuncDoc

    public void delFuncDoc()

### delDoc

    public void delDoc()

### getFuncDefaults

    public PyObject getFuncDefaults()

### setFuncDefaults

    public void setFuncDefaults(PyObject func_defaults)

### delFuncDefaults

    public void delFuncDefaults()

### setFuncCode

    public void setFuncCode(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

    public PyObject getFuncDict()

### setFuncDict

    public void setFuncDict(PyObject value)

### delFuncDict

    public void delFuncDict()

### setFuncGlobals

    public void setFuncGlobals(PyObject value)

### setFuncClosure

    public void setFuncClosure(PyObject value)

### __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`

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

Jython homepage