当前位置: 首页>>代码示例>>Python>>正文


Python WeakValueDictionary.append方法代码示例

本文整理汇总了Python中weakref.WeakValueDictionary.append方法的典型用法代码示例。如果您正苦于以下问题:Python WeakValueDictionary.append方法的具体用法?Python WeakValueDictionary.append怎么用?Python WeakValueDictionary.append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在weakref.WeakValueDictionary的用法示例。


在下文中一共展示了WeakValueDictionary.append方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: SilkArray

# 需要导入模块: from weakref import WeakValueDictionary [as 别名]
# 或者: from weakref.WeakValueDictionary import append [as 别名]
class SilkArray(SilkObject):
    _element = None
    dtype = None
    _elementary = None
    _arity = None
    __slots__ = [
        "_parent", "_storage_enum", "_storage_nonjson_children",
        "_data", "_children", "_Len", "_is_none", "__weakref__"
    ]

    def __init__(self, *args, _mode="any", **kwargs):
        self._storage_enum = None
        self._storage_nonjson_children = set()
        self._children = None
        if _mode == "parent":
            self._init(
                kwargs["parent"],
                kwargs["storage"],
                kwargs["data_store"],
                kwargs["len_data_store"],
            )
        elif _mode == "from_numpy":
            assert "parent" not in kwargs
            self._init(
                None,
                "numpy",
                kwargs["data_store"],
                kwargs["len_data_store"],
            )
        else:
            assert "parent" not in kwargs
            assert "storage" not in kwargs
            assert "data_store" not in kwargs
            self._init(None, "json", None, None)
            if _mode == "any":
                self.set(*args)
            elif _mode == "empty":
                pass
            elif _mode == "from_json":
                self.set(*args, prop_setter=_prop_setter_json, **kwargs)
            else:
                raise ValueError(_mode)

    @property
    def _len(self):
        return int(self._Len[0])

    @_len.setter
    def _len(self, value):
        self._Len[0] = value

    def _init(self, parent, storage, data_store, len_data_store):
        if parent is not None:
            if storage == "numpy":
                self._parent = lambda: parent # hard ref
            else:
                self._parent = weakref.ref(parent)
        else:
            self._parent = lambda: None
        self.storage = storage

        self._is_none = False
        self._storage_nonjson_children.clear()

        if self._children is not None:
            for child in self._children:
                child._parent = lambda: None
        if storage == "json":
            self._children = []
            if data_store is None:
                data_store = []
            self._data = data_store
            self._Len = [0]
        elif storage == "numpy":
            self._children = WeakValueDictionary()
            assert data_store is not None
            assert len_data_store is not None
            assert len(len_data_store), len_data_store
            dtype = np.dtype(self.dtype, align=True)
            assert data_store.dtype == dtype
            self._data = data_store
            self._Len = len_data_store
            return
        else:
            raise ValueError(storage)

        assert storage == "json"
        for n in range(len(self._data)):
            if n > len(data_store):
                if issubclass(self._element, SilkArray):
                    self._data.append([])
                else:
                    self._data.append({})
            if not self._elementary:
                child = self._element(
                  _mode="parent",
                  storage="json",
                  parent=self,
                  data_store=self._data[n],
                  len_data_store=None,
#.........这里部分代码省略.........
开发者ID:agoose77,项目名称:seamless,代码行数:103,代码来源:silkarray.py


注:本文中的weakref.WeakValueDictionary.append方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。