ConcealableAttr =============== .. currentmodule:: deepfos.lib.utils .. autoclass:: ConcealableAttr :exclude-members: 可隐藏变量 可读/写描述符,调用 :meth:`expose` 后会暴露变量, 是该变量可访问。调用 :meth:`conceal` 则会隐藏变量, 此时访问会引发 :class:`AttributeError`。 典型应用场景: 有一个属性值仅在特定上下文中有意义,为了防止在其他 代码中意外访问到该变量而产生难以debug的错误,可以在 进入上下文前将该变量暴露,退出上下文时将该变量隐藏。 >>> class T: ... attr = ConcealableAttr("test") >>> t = T() >>> T.attr.expose(t) >>> t.attr 'test' >>> T.attr.conceal(t) >>> t.attr Traceback (most recent call last): ... AttributeError: Attribute 'attr' is concealed. .. autosummary::