トレースバック (最後の呼び出し):
ファイル「C:UsersleeDocumentsAptana Studio 3 Workspacetestaa.py」、19 行目、
a.__name
を出力します
AttributeError: インスタンスには属性 '__name'
がありません
プライベート属性 __name にアクセスすると、実際には、権限などを求めるプロンプトではなく、属性メンバーが見つからないというプロンプトが表示されるため、次のように記述してもエラーは報告されません:
コードをコピー コードは次のとおりです:
#! エンコーディング=UTF-8
クラス A:
Def __init__(self):
#プライベート プロパティを定義する
self.__name = "王武"
# 共通属性定義
self.age = 19
a = A()
a.__name = "リシ"
a.__name
を出力します
実行結果:
1
リシ
Python では、継承したとしても、次のようなプライベート変数に相互にアクセスすることはできません。
コードをコピー
コードは次のとおりです:
#! エンコーディング=UTF-8
クラス A:
Def __init__(self):
#プライベート プロパティを定義する
self.__name = "王武"
# 共通属性定義
self.age = 19
クラス B(A):
定義名(自分):
self.__name
を印刷します
b = B()
b.sayName()
実行結果:
コードをコピー
コードは次のとおりです:
トレースバック (最後の呼び出し):
ファイル「C:UsersleeDocumentsAptana Studio 3 Workspacetestaa.py」、19 行目、
b.sayName()
ファイル「C:UsersleeDocumentsAptana Studio 3 Workspacetestaa.py」、15 行目、sayName
self.__name
を印刷します
AttributeError: B インスタンスには属性 '_B__name'
がありません
または、親クラスは次のようなサブクラスのプライベート プロパティにアクセスできません:
コードをコピー
コードは次のとおりです:
#! エンコーディング=UTF-8
クラス A:
定義(自分自身):
print self.name
自分自身を印刷します。__年齢
クラス B(A):
Def __init__(self):
self.name = "王武"
自分自身.__年齢 = 20
b = B()
b.say()
実行結果:
コードをコピー
コードは次のとおりです:
王武
トレースバック (最後の呼び出し):
ファイル「C:UsersleeDocumentsAptana Studio 3 Workspacetestaa.py」、15 行目、
b.say()
ファイル「C:UsersleeDocumentsAptana Studio 3 Workspacetestaa.py」の 6 行目、たとえば
自分自身を印刷します。__年齢
AttributeError: B インスタンスには属性 '_A__age' がありません