one step
[파이썬] 클래스, 메서드. 서로 다른 메서드에서 초기값 호출하기 (코멘트 관리) 본문
반응형
게시글과 차단
게시글을 작성하고 포스팅하여 사람들에게 보여주는 Post클래스의 메서드를 구현합니다.
Post 클래스는 다음과 같은 속성들을 가집니다.
author : 게시글의 작성자
content : 게시글의 내용
comments : 게시글의 댓글들 (Post 인스턴스의 리스트)
blocks : 해당 게시글의 차단당한 사람들(Post 인스턴스의 리스트)
작성해야할 코드는 다음과 같습니다.
Post 클래스에 댓글을 추가하는 메서드 addComment를 구현합니다.
댓글의 작성자 comment_author와 댓글의 내용인 comment를 매개변수로 받습니다.
Post 클래스의 속성 comments에 저장되는 형식은 [comment_author, comment] 입니다.
Post 클래스에 차단 기능을 가진 addBlock 메서드를 구현합니다.
차단된 유저는 해당 게시글의 내용과 댓글을 볼 수 없어야 합니다.
이미 차단된 유저를 다시 매개변수로 받을 경우 차단이 취소 됩니다.
Post 클래스에 게시글 보여주는 display 메서드를 구현합니다.
기본적으로 모든 사용자들은 게시글을 볼 수 있지만 차단되어 있을 경우 볼 수 없습니다.
# 초기 코드
from user import User
class Post:
# 생성자는 매개변수로 작성자와 내용을 받아,
# 그 값을 속성에 저장합니다.
def __init__(self, author, content):
# 속성들을 초기화합니다.
self.author = author
self.content = content
# 아래의 코드를 수정하세요.
self.comments = []
self.blocks = None
# 댓글을 추가하는 기능 가진 addComment 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def addComment(None):
pass
# 차단 기능을 가진 addBlock 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def addBlock(None):
pass
# 게시글과 댓글의 내용을 반환해주는 display 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def display(self, user):
# 출력할 결과를 저장할 result 입니다.
result = ""
# 차단된 유저가 글을 볼 수 없도록 아래의 조건문을 작성합니다.
if None:
result += "작성자 : " + str(self.author.name)
result += "\n내 용 : " + str(self.content)
result += "\n댓 글\n"
for i in range(len(self.comments)):
result += str(self.comments[i][1]) + "-" + str(self.comments[i][0].name) + "\n"
else:
result = "차단된 사용자입니다"
return None
# 새로운 사용자를 생성합니다.
me = User("me")
# 아래에 자유롭게 인스턴스를 생성하고 테스트해보세요.
my_post = Post(me, "첫 게시글!!")
from user import User
class Post:
# 생성자는 매개변수로 작성자와 내용을 받아,
# 그 값을 속성에 저장합니다.
def __init__(self, author, content):
# 속성들을 초기화합니다.
self.author = author
self.content = content
# 아래의 코드를 수정하세요.
self.comments = []
self.blocks = []
# 댓글을 추가하는 기능 가진 addComment 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def addComment(self, comment_author, comment):
self.comments.append([comment_author, comment])
print(self.comments)
# 차단 기능을 가진 addBlock 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def addBlock(self, comment_author):
if comment_author in self.blocks:
self.blocks.remove(comment_author)
else:
self.blocks.append(comment_author)
print(self.blocks)
# 게시글과 댓글의 내용을 반환해주는 display 메서드를 생성합니다.
# 아래의 코드를 수정해서 메서드를 완성하세요.
def display(self, user):
# 출력할 결과를 저장할 result 입니다.
result = ""
# 차단된 유저가 글을 볼 수 없도록 아래의 조건문을 작성합니다.
if user not in self.blocks:
result += "작성자 : " + str(self.author.name)
result += "\n내 용 : " + str(self.content)
result += "\n댓 글\n"
for i in range(len(self.comments)):
result += str(self.comments[i][1]) + "-" + str(self.comments[i][0].name) + "\n"
else:
result = "차단된 사용자입니다"
return result
# 새로운 사용자를 생성합니다.
me = User("me")
# 아래에 자유롭게 인스턴스를 생성하고 테스트해보세요.
my_post = Post(me, "첫 게시글!!")
my_post.addComment('aaa','aaaa')
반응형
'이것저것 코드 > 파이썬' 카테고리의 다른 글
[파이썬] 국가명, 수도, 면적, 인구 추출해서 정리하기 (1) | 2022.09.16 |
---|---|
[파이썬] Action chain 사용해서 ID/PW입력받고 로그인 버튼 누르고, 환영 메시지 출력하기 (0) | 2022.09.10 |
[파이썬] 꺾은선 그래프 그리기 (토끼그림) (0) | 2022.09.08 |
[파이썬] 문자열 검증하기 (islower, startswith, datetime) (0) | 2022.09.08 |
[파이썬] 문자열 유효성 검사 (비밀번호, 윤년) (0) | 2022.09.08 |