私はJavaの世界から来ており、Bruce EckelsのPython 3 Patterns、Recipes and Idiomsを読んでいます。
クラスについて読んでいる間、Pythonではインスタンス変数を宣言する必要がないと言い続けます。あなたはそれらをコンストラクタで使用するだけで、ブーム、それらはそこにあります。
だから例えば:
class Simple:
def __init__(self, s):
print("inside the simple constructor")
self.s = s
def show(self):
print(self.s)
def showMsg(self, msg):
print(msg + ':', self.show())
それが真の場合、クラスのオブジェクトはクラスの外のSimple
変数の値を変更することができますs
。
例えば:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
Javaでは、public / private / protected変数について教えてきました。これらのキーワードは、クラスの外部の誰もがアクセスできないクラス内の変数が必要になる場合があるため、意味があります。
Pythonでそれが必要とされないのはなぜですか?