今日、私は、Protected
メンバークラスがPythonにあるかどうか尋ねました。多くの人が、Public
Protected
またはPrivate
のようなものはないと言っていました。まだ10だったので、これは私が変わっしかしPrivate
、のようなものです実際にはPythonでカプセル化されていません
car = Vehiculo(10)
car.__peso = 20
とそれが印刷された:しかし、私はこれをテストするために、次のコード製:
class Vehiculo():
def __init__(self, peso):
self.__peso = peso
をし、私がやった外部クラスから1つの下線付きのクラス変数:
class Vehiculo():
def __init__(self, peso):
self._peso = peso
代わりに20が表示されます。誰かが私にこのことを明確に説明することはできますか?私は非常によく似た投稿を読んだことがあるが(多くは重複していると思う)、私は彼らの言うことを理解していない。これはまさにPublic
Private
です。そして、私はProtected
の振る舞いをする方法、あるいはそれが可能であるかどうかを知りたいと思います。
ありがとうございました。
私が述べたように、私はいくつかのテストを行い、二重下線は、私がセッター機能を使用しない限り、他のモジュールまたはクラスからその変数にアクセスさせることはできませんでした.... – Wrong
あなたはダブルアンダースコア値。おそらくあなたは間違ってそれにアクセスしていたでしょう。 – Soviut
私はそれが正しいと確信しています...多分それはPythonのverisonと関係がありますか?私は3.5.2を使用しています – Wrong