team 과제 -1

chanloper·2024년 7월 2일

python

목록 보기
8/12

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 를 작성하는 것은 조금 수월했다.

profile
이것 뭐에요?

0개의 댓글