如何实现本地班级选择?

如何实现本地班级选择?

我正在编写一个自定义类,并想使用一些选项关键字(例如draft),这些关键字也由我需要导入的一些包共享,这会导致意想不到的结果。这是因为默认情况下,提供给类的所有选项都被视为全局的,并传递给所有导入的包。

在我看来这是一个令人难以置信的设计缺陷。

作为一个编写课程的凡人,我怎样才能了解所有现有和将要存在的包的选项,以避免名称冲突?

目前,我知道有两种可能的解决方案:

  1. 为所有旨在本地化的选项提供一些非常详细的名称,例如<myclass>_<options>
  2. 处理完选项后立即从全局选项列表中删除它们。非常黑客!(参见egreg 的回答

这两种方法都不能令人满意,正如 Raymond Hettinger 所说:一定会有更好的办法!

PS:我正在使用kvoptions处理选项

相关问题:

相关内容