いくつかの保護されたメンバーとそれらを変更するためのパブリックインターフェイスを持つクラスを考えると、保護されたメンバーに直接アクセスすることが一般的に受け入れられるのはいつですか?私はいくつかの具体的な例を念頭に置いています:
これらの属性は公開されたくないので、公開したくありません。私の構文IDE構文の強調表示は、保護されたメンバーへのアクセスが間違っていると言い続けています-誰がここにいますか?
[〜#〜] edit [〜#〜]-以下に簡単な例を追加します。
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を次のように強調表示します:
保護されたメンバーへのアクセス_クラスの架空
解決済み-問題は実際には型ヒントの欠如に関係していました。以下が機能するようになりました。
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)