Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

one step

[파이썬] 클래스, 메서드. 서로 다른 메서드에서 초기값 호출하기 (코멘트 관리) 본문

이것저것 코드/파이썬

[파이썬] 클래스, 메서드. 서로 다른 메서드에서 초기값 호출하기 (코멘트 관리)

원-스텝 2022. 9. 8. 19:12
반응형
게시글과 차단

게시글을 작성하고 포스팅하여 사람들에게 보여주는 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')

 

 

 

반응형