提问人:opnightfall1771 提问时间:12/11/2021 最后编辑:Emiliano Viottiopnightfall1771 更新时间:4/30/2023 访问量:1248
在 Python 中键入提示受保护/私有类的正确方法?
Correct way to type hint protected / private classes in Python?
问:
我这里有一个示例类,我想使用 lxml 来解析 xml 文件。
class XMLParser:
def __init__(self, path: str):
self.root: etree._Element | None = None
但是,当我使用此类型提示时,PyCharm 会抱怨对受保护成员的访问_Element。有没有更正确的方法来注释这样的变量?当我键入 check this 时,_Element类是正确的。
感谢您的帮助!
答:
1赞
Abel Cheung
4/30/2023
#1
OP 的最佳方法是忽略警告。根据我几年的 lxml 类型注解经验,“public”/“private”-ness 和类名没有明确的关系——一些用户无法构造的私有结构具有类似 public-class 的名称(公开导出,不带下划线,如)。PyCharm
DocInfo
尽管作者似乎将其声明为“私有”,但 lxml 用户根本无法在函数签名中避免它。其他“私有”类也是如此,如 等。etree._Element
_ElementTree
_Comment
评论
_Element
Element
# pylint: ignore
lxml
etree.Element
etree._Element
Protocol