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.
- Exclude-members
可隐藏变量
可读/写描述符,调用
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.