【发布时间】:2014-06-02 19:15:48
【问题描述】:
我知道要编写你使用的 python 模块私有/受保护函数
def _func():
...
但我有一个带有专门覆盖的对象层次结构。另外我想隐藏内部实现(因为它不是供外部使用的,所以我希望可以在不破坏代码的情况下改进它,而不是我认为除了我之外的任何人都会使用它)。如果我使用
class Paragraph(Tag):
def _method(self):
...
并尝试从子类标记 IntelliJ IDEA 的不同类中调用 _method(并且可能 pylint/其他检查器也会)给我一个警告。有没有办法解决这个问题?
我的用例是一组 markdown 标记对象,用于生成类似“树”的结构,可以将其转换为正确的 markdown 字符串。每个标签都会覆盖一个受保护的方法来转换自己和它包含的标签,还有一些会覆盖一个方法来检查子标签是否有效(例如没有嵌套的粗体)。只有顶级标签上下文具有转换树的公共方法。
编辑:
IntelliJ IDEA 警告:
访问类_method的受保护成员
【问题讨论】:
-
“冒犯”的电话是什么样的?
-
为什么不直接忽略 Intellij 警告?顺便说一句,Pylint 不会在乎这种电话。这只是一个约定,从它的声音来看,您正确地使用了约定。
-
我不认为它是重复的。