Dada una clase con algunos miembros protegidos y una interfaz pública para modificarlos, ¿cuándo se acepta generalmente acceder directamente a los miembros protegidos? Tengo algunos ejemplos específicos en mente:
No quiero hacer públicos estos atributos porque no quiero que se toquen públicamente. El resaltado de sintaxis de mi IDE de sintaxis sigue diciendo que me equivoco al acceder a miembros protegidos. ¿Quién está aquí?
EDITAR - agregando un ejemplo simple a continuación:
class Complex: def __init__(self, imaginary, base): self._imaginary = imaginary self._base = base def __str__(self): return "%fi + %f" % self._base, self._imaginary def __add__(self, other): return Complex(self._imaginary + other._imaginary, self._base + other._base)Pycharm destaca other._imaginary y other._base con lo siguiente:
Acceso a un miembro protegido _imaginario de una clase
Resuelto: el problema en realidad tenía que ver con la falta de sugerencias de tipos. Lo siguiente ahora funciona:
class Complex: def __init__(self, imaginary, base): self._imaginary = imaginary self._base = base def __str__(self): return "%fi + %f" % self._base, self._imaginary def __add__(self, other): """ :type other: Complex :rtype Complex: """ return Complex(self._imaginary + other._imaginary, self._base + other._base)