클래스란? => 나타내고자 하는 개념의 설계도입니다!
Python은 객체 지향 언어인데, 이 객체를 만들어주는 "붕어빵 틀"과 같은 역할을 Class가 맡고 있습니다.
ㄷ
이 Class를 통해 만들어진 실제 예시들을 인스턴스(instance)라고 합니다. 붕어빵이죠.
Class는 속성(attribute), 메서드(method)를 갖고 있습니다.
인스타그램 포스트를 예로 들어볼게요,
인스타그램 게시물은
[작성자, 댓글, 좋아요, 내용] 등을 속성으로 갖고
그리고 [좋아요 누르기, 댓글 달기]와 같은 메서드가 가능하겠죠?
Class Post:
def __init__(self, author, content):
self.author = author
self.content = content
self.comment = []
Class는 항상 "생성자"라고 하는 가장 기본이 되는 __init__ '메서드'를 가집니다.
생성자란, 인스턴스가 처음 만들어질 때 어떻게 세팅될 것인지 결정하는 것입니다
*Class 정의 내에 self. 부분은 모두 "클래스의 속성"이라는 꼬리표라고 생각하면 좋습니다. 실제 데이터가 저장되는 이름이에요
*Class의 메서드 들은 paramete로 self를 반드시 가져야 합니다. 객체를 만들 때는 써줄 필요가 없습니다!
*클래스 내부에서 접근하려면 self.author, 외부에서 접근하려면 Post.author와 같이 사용해야 합니다!
위의 코드를 보자면,
__init__생성자는 parameter로 author, content를 받아옵니다.
self.author는 Post클래스의 속성 부분이고 앞으로 변수로 사용될 것이고,
등호 우편의 author는 매개변수로, 어떤 값을 넣어줄지 결정하는 부분입니다!
실제로 사용하려면
my_post = Post("Jin", "I love coding!")
와 같이 사용하게 되는데,
author는 Jin, content는 "I love coding"을 갖는 'Post' 클래스의 인스턴스, 'my_post'를 만든 겁니다!
ㄷ
self.comment는 뭐냐고요?
'댓글 리스트'를 만드려는데 처음 게시물을 올리면 댓글이 달려있지 않잖아요?
그래서 비워주는걸 Default로 하는 거니까 my_post의 매개변수도 필요 없는 거예요!
'Programming > 공부' 카테고리의 다른 글
intelliJ IDEA 자동완성 꿀팁 (feat.Constructor) (0) | 2022.03.18 |
---|---|
Python 문자열 올바른 양식인지 확인하기(feat.이메일 양식) (0) | 2021.12.20 |
문자열에 특수기호, 숫자 포함하는지 확인하기 (feat. string) (0) | 2021.12.20 |
에러 메시지 읽기 (0) | 2021.12.08 |