파이썬 심화 강의 듣기 + 클래스를 사용하여 프로필 출력하는 코드 만들기(TIL)2주차 1일

노우석·2022년 9월 13일
0
post-custom-banner

# 용어 정리

  • 인스턴스(instance) : class를 사용해 생성된 객체
  • 메소드(method) : 메소드란 클래스 내에 선언된 함수이며, 클래스 함수라고도 한다.
  • self : 메소드를 선언할 때에는 항상 첫번째 인자로 self를 넣어줘야 한다.

클래스 기본 모습

class CookieFrame(): # CookieFrame이라는 이름의 class 선언
def set_cookie_name(self, name):
self.name = name ## name이라는 변수만들기

cookie1 = CookieFrame() ##클래스에서 오브젝트를 가져오는걸 선언
cookie2 = CookieFrame() ##인스턴스 생성은 몇개를 해도 괜찮다.

cookie1.set_cookie_name("cookie1") # 메소드의 첫 번째 인자 self는 무시된다.
cookie2.set_cookie_name("cookie2")

print(cookie1.name) # cookie1
print(cookie2.name) # cookie2

init함수

class에 init메소드를 사용할 경우 인스턴스 생성 시 해당 메소드가 실행된다.

class CookieFrame():
def init(self, name):
print(f"생성 된 과자의 이름은 {name} 입니다!")
self.name = name

cookie1 = CookieFrame("cookie1") # 생성 된 과자의 이름은 cookie1 입니다! ##인스턴스 생성 후 바로 시작됨
cookie2 = CookieFrame("cookie2") # 생성 된 과자의 이름은 cookie2 입니다!

프로필 형태(틀) 만들고 인스턴스 안에 바로 적용하기

from pprint import pprint

class Profile:
def init(self):
self.profile = {
"name": "-",
"gender": "-",
"birthday": "-", ##딕셔너리 형태의 틀
"age": "-",
"phone": "-",
"email": "-",
}

def set_profile(self, profile):
    self.profile = profile
    
def get_profile(self):
    return self.profile

profile1 = Profile()
profile2 = Profile()

profile1.set_profile({ ##set을 이용해서 입력해놓기
"name": "lee",
"gender": "man",
"birthday": "01/01",
"age": 32,
"phone": "01012341234",
"email": "python@sparta.com",
})

profile2.set_profile({
"name": "park",
"gender": "woman",
"birthday": "12/31",
"age": 26,
"phone": "01043214321",
"email": "flask@sparta.com",
})

pprint(profile1.get_profile()) ##get으로 입력한 set을 출력
pprint(profile2.get_profile()

프로필 내용을 적고 각각 출력하는 코드를 만들어보았다.

class Profile(): ## 클래스 선언
def init(self): ## init으로 인스턴스 생성시 바로 시작되게 만들었따.
self.name = "Nho" ##각각 변수를 만들어줌
self.gender = "man"
self.birthday = "0223"
self.age = "27"
self.phone = "76874569"
self.email = "nhowooseok@gmail.com"

def set_name(self, name):        ##set으로 입력해놓기
    self.name = name

def set_gender(self, gender):
    self.name = gender

def set_birthday(self, birthday):
    self.name = birthday

def set_age(self, age):
    self.name = age

def set_phone(self, phone):
    self.name = phone

def set_email(self, email):
    self.name = email

def get_name(self):           ##get으로 출력함수 만들기
    return self.name

def get_gender(self):
    return self.gender

def get_birthday(self):
    return self.birthday

def get_age(self):
    return self.age

def get_phone(self):
    return self.phone

def get_email(self):
    return self.email

profile1 = Profile()
print(profile1.get_name()) ##인스턴스 생성 후 프린트로 출력
print(profile1.get_gender())
print(profile1.get_birthday())
print(profile1.get_age())
print(profile1.get_phone())
print(profile1.get_email())

class를 써서 self를 처음 인자로 쓰는것에 대한 이해가 잘 되지 않았다.

새로운 언어를 쓰는 듯 했다.

set get을 이용해 입력과 출력함수를 만드는 것을 이해하는데 어려웠고 마지막 인스턴스 생성에서 들여쓰기 위반과 스팰링 문제로 오랜시간 붙잡고 고심해서 많이 힘들었다. 다음 부터는 좀 더 세심하고 디테일하게 코딩해야겠다.

profile
중요한건 버그에게 꺾이지 않는 마음
post-custom-banner

0개의 댓글