Annotation Type ExposedNew
-
@Retention(value=RUNTIME) @Target(value=METHOD) public @interface ExposedNewCan appear on two forms of methods to indicate a method should be part of the __new__ object creation. Can only appear once per exposed type.
In the first form, the method must be static and take the arguments
PyNewWrapper new_, boolean init, PyType subtype, PyObject[] args, String[] keywords. In this case, the method has full responsibility for creating and initting the object and will be invoked for every subtype of this exposed type. Essentially it's for object instantiation that must be called for every instance of that object. SeePyInteger.int_new(org.python.core.PyNewWrapper, boolean, org.python.core.PyType, org.python.core.PyObject[], java.lang.String[])for an example of this type of ExposedNew.In the second form, the method must be an instance method that takes the standard Jython call arguments,
PyObject[] args, String[] keywords. In this case, the basic new functionality is handled by PyOverridableNew and the method with ExposedNew is called as __init__ as part of that process. This allows subtypes to completely redefine new and create objects however they like.
DMelt 3.0 © DataMelt by jWork.ORG