[Solved]What is Object Base?

When overriding bpy.context, it seems that I should overwrite object bases (eg selected_bases) instead of objects (selected_objects).

However, I have no idea what this is.

In the docs(for version < 2.80), it reads that it is

An object instance in a scene

, which sounds like the bpy.types.Object(ID) itself. (And I hardly understand what the props like layers_local_view are)

In the doc of 2.80 (accessed on 1 Nov), it is described as

An object instance in a render layer

,which seems more informative but still makes no sense to me.

reading this D2412

Found an answer.

The fact that the actual data remains in the Main tree is further visualized in the Scene block. Internally it has a list of Base structs which allows a Scene to link to many Objects without removing them from the list in the Main structure.
(A Base also allows some local properties, such as layer and selection, enabling a single Object to be used by multiple Scenes with such properties different.)


Document on data structure