Reference#
A Reference is a name binding. It binds a name, such as foo
to an object.
References are manually created by the user
as attributes of UserSpace
:
>>> space.foo = 1
When a Reference is created as an attribute of a UserSpace
,
the name becomes available in the namespace associated with the
UserSpace
.
The Formulas of child Cells
of the
UserSpace
are evaluated in the namespace,
so the name that appears in the Formulas refers to the object
that the name is bound to by the Reference.
Continuing with the above example,
suppose a Cells baz
is defiened in the same Space space
as
foo
:
>>> space.baz.formula
def baz():
return foo
The foo
in the baz
definition referes to 1
:
>>> space.baz()
1
References can also be created as attributes of Model
objects.
Such References become accessible from any Space in the Model.
Suppose model
is a Model
object
and the parent of space
:
>>> model.bar = "bar"
bar
defined above is also defined in space
:
>>> space.bar
'bar'
And bar
can be referred to from the Formulas of child
Cells
of model
:
>>> def baz():
... return bar
>>> space.baz = baz
>>> space.baz.formula
def baz():
return bar
>>> space.baz()
'bar'
Reference objects themselves are hidden from the user,
and the bound objects are always referenced by the names.
To access the attributes of
Reference objects, ReferenceProxy
objects are used.
ReferenceProxy#
- class ReferenceProxy(impl)[source]#
Proxy to interface to References
Reference objects are not exposed to the user, thus ReferenceProxy objects are used to interface to References. A proxy object to a Reference can be created and returned by the
get_object()
function, by passing the full dotted name of the Reference toname
, andTrue
toas_proxy
:>>> mx.get_object("Model1.Space1.foo", as_proxy=True)
Reference shares its ultimate base class with Model, Space and Cells classes, and below are attributes common among those classes.
- parent#
The parent of the Reference.
- model#
The Model that the Reference belongs to.
See also
Attributes#
Returns referenced object |
|
Returns reference mode |