object.py 867 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
from .trees import BaseTreeStruct, clsmeta

__all__ = [
    "Object",
]


def _object(obj):
    return obj


class Object(BaseTreeStruct, metaclass=clsmeta(_object, allow_dict=True)):
13 14 15 16 17
    """
    Overview:
        Generic object tree class, used in :py:mod:`treetensor.numpy` and :py:mod:`treetensor.torch`.
    """

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
    def __init__(self, data):
        """
        In :class:`treetensor.common.Object`, object or object tree can be initialized.

        Examples::

            >>> from treetensor.common import Object
            >>> Object(1)
            1

            >>> Object({'a': 1, 'b': 2, 'x': {'c': 233}})
            <Object 0x7fe00b1153a0>
            ├── a --> 1
            ├── b --> 2
            └── x --> <Object 0x7fe00b115ee0>
                └── c --> 233
        """
        super(BaseTreeStruct, self).__init__(data)