我这里有一个示例类,我想使用 lxml 来解析 xml 文件。
class XMLParser:
def __init__(self, path: str):
self.root: etree._Element | None = None
但是,当我使用此类型提示时,PyCharm 抱怨无法访问受保护的成员 _Element。有没有更正确的方法来注释这样的变量?当我输入检查时,_Element 类是正确的。
感谢您的帮助!
OP 的最佳方法是忽略
PyCharm
警告。以我几年lxml类型注解的经验,“public”/“private”-ness和类名没有确定的关系——一些用户无法构造的私有结构具有类公共类的名称(公开导出且没有下划线,如DocInfo
)。
虽然
etree._Element
貌似被作者声明为“私有”,但lxml用户在函数签名中根本无法避免它。 _ElementTree
、_Comment
等其他“私人”课程也是如此