This class provides essential attributes and methods. It makes
the assumption that the container name is ..method_env..
and the name of
the reference to self is self
. If you would like to use other container
names and self names, you need to overwrite the class definition of BASE.
The class environment is defined as an empty environment by new.env()
at build-time, and the class descriptor is run at load-time by
.onLoad()
.
This ensures methods and attributes of the class is built with the
load-time (usually latest) installed dependencies (if it depends on any).
Derived classes should follow the same principle to avoid running the class
descriptor at build-time, and only defines the content of the class at
load-time.
Since bandicoot
does not support dynamic dispatch,
calling the correct parent method can be difficult in a
complex class system.
So, users can use the ..mro..
(method resolution order) attribute and the
super()
function to determine the correct super/next class.
If users decide to store parent environments in
the derived class such that parent method can be called more handily,
awareness needs to be raised when saving and loading these classes/instances.
It is very likely the same class stored in different objects becomes different
environments.
Usage
base_(..., env = new.env(parent = parent.frame()), init_call = sys.call())
Arguments
- ...
Ignored.
- env
Environment. The instance environment.
- init_call
Call. Contents of the
..init_call...
It is recommended to leave it as default.
Functions
base_()
: Class constructor, same asBASE$instantiate()
.