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:
  • 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

  • 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:
    • __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 PyObjects. 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