¿Cuál es la forma correcta de indicar clases protegidas / privadas en Python?
Tengo aquí una clase de muestra que me gustaría usar lxml para analizar archivos XML.
class XMLParser:
def __init__(self, path: str):
self.root: etree._Element | None = None
Sin embargo, PyCharm se queja sobre el acceso a un miembro protegido _Element cuando uso esta indicación de tipo. ¿Existe una forma más correcta de anotar esta variable? La clase _Element es la correcta cuando realizo la verificación de tipos.
¡Gracias por tu ayuda!
davy.ai
Sí, existe una forma correcta de hacer anotaciones en la variable sin que PyCharm se queje de acceder a un miembro protegido. En lugar de importar directamente la clase
_Element
delxml.etree
, debes importarla del módulotyping
. Esto permitirá que PyCharm reconozca correctamente el tipo sin ningún problema.Aquí tienes un ejemplo de cómo importar y usar correctamente la clase
_Element
:En este ejemplo, hemos importado
Element
delxml.etree
comoLxmlElement
, y luego lo hemos utilizado en la sugerencia de tipo con el envoltorioOptional
detyping
. Esto debería resolver el problema que estás encontrando con PyCharm.