본문 바로가기

Python/객체지향5

[ 객체 지향 프로그래밍 ] 5일차 ( 상속 ) * 캡슐화 : __를 2개 붙이면 그 변수의 이름은 네임 맹글링이 된다. 네임 맹글링이 된 후 새 이름을 사용하면 외부로부터 그 변수에 접근할 수 있기때문에 접근을 완벽하게 막을 수 있는 것은 아니다. → getter / setter 메소드를 직접 정의하는 것이 아니라 @property 데코레이터를 사용하는 것이 좋다. @property 메소드를 사용하면 마치 변수에 직접 접근하는 것 같은 방식으로 변수의 값을 읽을 수 있다. ( 실제로는 getter / setter 메소드가 실행되는 것임 ) [ 상속 ] 상속이란 두 클래스 사이에 부모 - 자식 관계를 설정하는 것이다. ex) A는 B이다. A는 자식 클래스이고 B는 부모 클래스이다. 자식 클래스는 부모 클래스의 모든 변수와 메소드를 물려받는다. 상속은.. 2022. 2. 10.
[ 객체 지향 프로그래밍 ] 4일차 ( 추상화, 캡슐화 ) [ 추상화 ] 추상화는 어떤 것을 사용할 때 몰라도 되는 정보는 감추고 꼭 알아야 하는 부분만 드러내는 것을 의미한다. 즉, 프로그래머들이 특정 코드를 사용할 때 필수적인 정보를 제외한 세부 사항을 가리는 것이다. 변수나 함수를 사용하는 것도 추상화이다. 한번 변수를 선언한다면 그 변수의 값을 몰라도 이름만 안다면 호출해서 사용이 가능하기 때문이다. 함수 또한 이름, 파라미터, 기능 등만 알아도 바로 함수를 사용 가능하기 때문이다. 클래스를 사용하는 것도 추상화이다. 클래스 안에 있는 코드를 보지 않더라도 클래스의 필요한 정보만 알아도 사용이 가능하다. 예를 들면 list는 파이썬 개발자들이 미리 만들어놓은 클래스들 중 하나이다. 우리는 list 클래스의 append 함수의 자세한 코드를 모르지만 바로 .. 2022. 1. 29.
[ 객체 지향 프로그래밍 ] 3일차 ( 객체 지향 언어 ) [ 객체 지향 언어 ] 파이썬은 모든 것이 객체인 순수 객체 지향 언어이다. 1 : int 클래스로 만든 1을 나타내는 인스턴스 "" : str 클래스로 만든 빈 문자열을 나타내는 인스턴스 가변 VS 불변 타입 가변 타입 객체 : 한번 생성한 인스턴스의 속성 변경 가능 ex) 리스트 클래스 불변 타입 객체 : 한번 생성한 인스턴스의 속성 변경 불가 ex) 튜플 클래스 mutable_object = [1,2,3] immutable_object = (1,2,3) mutable_object[0] = 4 print(mutable_object) # [4,2,3] immutable_object[0] = 4 print(immutable_object) # 에러 불변 타입이라 해도 변수가 가리키는 객체 자체는 바꿀 수 .. 2022. 1. 21.
[ 객체 지향 프로그래밍 ] 2일차 ( __init__ ~ 클래스 메소드 ) [ 객체 지향 프로그래밍 ] class User: def settings(self, my_name, my_email, my_password) : self.name = my_name self.email = my_email self.password = my_password # User 인스턴스 생성 user1 = User() # 인스턴스의 초기값을 설정 user1.settings("2CHAECHAE", "2CHAECHAE@gamil.com", "1234!") user3 = User() User.settings(user3, "2MONMON", "2MONMON@gamil.com", "0000!") 함수를 작성해서 인스턴스 변수에 각 인스턴스에 맞는 값을 할당할 수 있다. user1의 경우는 인스턴스에서 메소드를.. 2022. 1. 20.
[ 객체 지향 프로그래밍 ] 1일차 ( 객체지향 정의 ~ 인스턴스 ) [ 객체 지향 프로그래밍 ] 객체지향 프로그래밍의 정의 객체 : 속성과 행동으로 이루어진 존재 ex) SNS 유저 객체 속성 : 이메일주소, 아이디, 비밀번호, 닉네임 등 행동 : 팔로우, 좋아요 등 객체 지향 프로그래밍 : 프로그램을 여러개의 독립적인 객체들과 그 객체들의 상호작용을 작성하는 프로그래밍 접근법. → 프로그램을 객체들간의 상호작용으로 모델링 클래스와 인스턴스 # 클래스 생성하기 # * 클래스의 첫 글자는 항상 대문자 class User : pass # 클래스로 인스턴스 만들기 # * 3개 모두 같은 User 클래스의 인스턴스이지만 서로 다른 인스턴스이다. user1 = User() user2 = User() user3 = User() * 같은 클래스로 인스턴스를 만들어도 인스턴스의 이름이.. 2022. 1. 12.