ConcealableAttr

class deepfos.lib.utils.ConcealableAttr(default=None)

可隐藏变量

可读/写描述符,调用 expose 后会暴露变量, 是该变量可访问。调用 conceal 则会隐藏变量, 此时访问会引发 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.
conceal(inst)

隐藏变量

expose(inst)

暴露变量