Python(파이썬) - 객체와 변수
Python(파이썬) - 객체와 변수 알아보기
이번 포스팅에서는 객체와 변수의 부분의 대해서 알아보겠습니다
관련글 :
Python(파이썬) - 객체(Object) - http://server-talk.tistory.com/210
Python(파이썬) - 객체제작 - http://server-talk.tistory.com/212
Python(파이썬) - Class(클레스)와 생성자 - http://server-talk.tistory.com/211
Python(파이썬) - 인스턴스 변수와 메서드 - http://server-talk.tistory.com/213
Python(파이썬) - 상속 - http://server-talk.tistory.com/214
Python(파이썬) - 클래스 메서드 - http://server-talk.tistory.com/216
Python(파이썬) - 객체와 변수의 접근관계 |
파이썬에서는 기본적으로 객체의 변수의 접근이 허용되어 있습니다
먼저 코드를 통해서 인스턴스 변수의 접근 관계를 알아보도록 하겠습니다
class Data(object): def __init__(self, v): self.value = v C1 = Data(10)
위 코드는 Data라는 클래스의 인스턴스화될 때 데이터(10) 를 전달 하며, 전달된 데이터를 value(인스턴스 변수)의 전달하는 코드입니다
class Data(object): def __init__(self, v): self.value = v C1 = Data(10) print(C1.value)
이번에는 Data 클래스의 전달한 매개변수를 C1의 소속되어 있는 인스턴스 변수를 출력하는 코드입니다
즉 C1의 소속되어 있는 인스턴스 변수를 읽을 것입니다
class Data(object): def __init__(self, v): self.value = v C1 = Data(10) print(C1.value) C1.value = 20 print(C1.value)
위 코드릴 보시면 이번에는 C1의 소속되어 있는 인스턴스 변수에 데이터(20) 직접 쓴 것을 확인하실 수 있습니다
Python(파이썬) - 객체의 변수 접근막기 |
위에서 객체의 외부에서 객체 안의 변수의 접근 방법(읽고, 쓰기)의 대해 알아보았는데요
그렇다면 만든 객체는 중요한 객체의 여서 객체 안에 데이터를 수정하면 되지 않게 하는 경우도 있을 수 있을 것입니다
이러한 경우의 객체 외부에서 객체의 변수의 접근을 하지 못하게 하는 방법을 알아보겠습니다
class Data(object): def __init__(self, v): self.__value = v C1 = Data(10) print(C1.__value)
위 코드와 출력내용의 에러가 발생하는 것을 보실 수 있습니다 바로 __(언더바 2개) 를 객체 안에 변수로 넣어주시면 되는 것입니다
그리하여 인스턴스 밖에서는 접근하는 것이 금지되는 것입니다
그러나 객체의 메서드 안에서는 접근이 가능합니다
class Data(object): def __init__(self, v): self.__value = v def show(self): print(self.__value) C1 = Data(10) C1.show()
위 코드에서의 Data 클래스 안에 show 메서드를 호출하면 출력 함수를 이용한 인스턴스 변수를 출력하는 코드를 추가하였으며, 실행 결과를 보시면 인스턴스 변수의 데이터를 확인할 수 있는 것입니다
즉 객체 안의 메서드를 이용하여 인스턴스 변수의 접근하실 수 있는 것입니다