ItemSpace.bases#

property ItemSpace.bases#

List of base spaces from which this space inherits.

Returns a list of UserSpace objects that serve as base spaces for this space. Spaces inherit cells and references from their base spaces, following Python’s Method Resolution Order (MRO) for multiple inheritance.

When a space has base spaces:

  • Cells defined in base spaces are copied in the derived space

  • References from base spaces are copied in the derived space

  • Derived spaces can override inherited cells and references

  • Multiple bases are resolved using C3 linearization algorithm

Returns:

Base spaces in MRO order

Return type:

list of UserSpace

Example

>>> base1 = model.new_space('Base1')
>>> base2 = model.new_space('Base2')
>>> derived = model.new_space('Derived')
>>> derived.add_bases(base1, base2)
>>> derived.bases
[<UserSpace Model1.Base1>, <UserSpace Model1.Base2>]

>>> base0 = model.new_space('Base0')
>>> base1.add_bases(base0)
>>> derived.bases
[<UserSpace Model1.Base1>, <UserSpace Model1.Base0>, <UserSpace Model1.Base2>]

See also