给定一个带有一些受保护成员的类和一个用于修改它们的公共接口,何时可以直接访问受保护成员?我有一些具体的例子:
我不想公开这些属性,因为我不希望他们公开触及。我的语法IDE语法高亮一直说我访问受保护的成员我是错的 - 谁就在这里?
编辑 - 在下面添加一个简单示例:
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使用以下内容突出显示 other._imaginary 和 other._base :
访问类的受保护成员_imaginary
答案 0 :(得分:3)
解决了 - 问题实际上与缺乏类型提示有关。以下现在有效:
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)