python의 class와 method을 활용하여 터미널에서 정적 게시글 창을 만들어 보는 것이 과제의 내용이다.
class Member:
def __init__(self, name, username, password):
# 생성자 구현
self.name = name
self.username = username
self.password = password
def display(self):
# 메소드 구현
print(f'회원이름:{self.name} 아이디:{self.username}') # password는 제외
class Post():
def __init__(self, title, content, author):
self.title = title
self.content = content
self.author = author.username # username을 저장
def create(self):
# 메소드 구현
print(f'제목:{self.title} 내용:{self.content} 작성자:{self.author}')
def display_members(members): # 함수 추가
print("--------------------------------------")
for member in members:
member.display() # display 메소드 호출
print()
def create_post(self): # 함수 추가
for post in posts:
post.create() # create 메소드 호출
print()
# 코드 실행
members = [] # 이곳에 .append
posts = []
M1 = Member('John-Wak', 'Wak', 1234) # Member의 M1 인스턴스 생성
M2 = Member('Kim-Jenny', 'Jenny', 4568)
M3 = Member('Lee-Chunsam', 'Chunsam', 910)
# M1,M2,M3 세 개의 인스턴스를 빈 리스트에 apeend 하는 방법
members.append(M1)
members.append(M2)
members.append(M3)
P1 = Post("제목1", "내용1", M1)
P2 = Post("제목2", "내용2", M1)
P3 = Post("제목3", "내용3", M1)
posts.append(P1)
posts.append(P2)
posts.append(P3)
display_members(members)
create_post(posts)
# M1.display() / # M1 인스턴스의 display 메소드 호출
# M2.display()
# 인자로 인스턴스를 넘겨줌
# Post 인스턴스를 만들 때 author 자리에 만들어둔 작성자 인스턴스를 넘기기
# P1 = Post("a","b",M1.username) # Post 인스턴스 생성 후, 이름 값을 넘김
P1 = Post("a", "b", M1) # Post 인스턴스 생성 후 , M1 인스턴스를 넘김
# M1을 넘겨야 Post 안에서 author.username이 가능하구
# M1.username으로 넘기면 Post 안에서 author 자체가 이름 값이 되어버림
전체적인 틀을 잡는데 5시간 정도 소요한것 같고,
Post class 에서 Member class 의 author.username 에 1차 막힘
내용들을 빈 리스트에 append 하는 것에서 2차 막힘
새로 만든 함수에서 display method를 호출하는 것에서 3차 막힘 정도가 있었다.
한번 해보고 나서 그런가 Post class 의 create method 를 작성하는 것은 조금 수월했다.