나는 Java 세계에서 왔으며 Bruce Eckels의 Python 3 Patterns, Recipes and Idioms를 읽고 있습니다.
클래스에 대해 읽는 동안 파이썬에서는 인스턴스 변수를 선언 할 필요가 없다고 말합니다. 당신은 생성자에서 그것들을 사용하고 붐이 있습니다.
예를 들어 :
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에서는 공개 / 개인 / 보호 변수에 대해 배웠습니다. 이러한 키워드는 클래스 외부의 어느 누구도 액세스 할 수없는 클래스의 변수를 원하기 때문에 의미가 있습니다.
왜 파이썬에서는 이것이 필요하지 않습니까?