코딩일기

[python] 객체지향 프로그래밍2(follower, following code) 본문

Code/기타

[python] 객체지향 프로그래밍2(follower, following code)

daje 2021. 3. 3. 16:54
728x90
반응형

 

 

 

 

 

안녕하십니까 다제입니다. 

 

지난 시간에는 객체와 객체지향프로그래밍의 정의와 클래스를 통해 속성을 만들어보는 시간을 갖었습니다. 

 

오늘은 지난 시간에 말씀드린 follow 시스템을 구현 해보도록 하겠습니다. 

 

현업에서도 이러한 코드를 사용하는지는 알 수는 없지만, 그래도 __init__을 이해하는데 도움이 된다 생각하여 이렇게 직접 코드를 작성해보았습니다. 

 

# 먼저 클래스를 선언해야합니다. 
class User:
  def __init__(self, name, email): # __init__는 인스턴스가 생성될 때 자동으로 호출됨
    self.name = name  # 호출될때 인자가 2개 인지 꼭 확인을 하고 첫번째로 오는 인지를 이름으로 인지함
    self.email = email # 두번째로 들어오는 인자를 이메일로 인지함 

  # follw 함수 정의
  # user가 another를 팔로워하면 followers_list 넣어줌 
  # another가 user를 팔로잉하면 following_list 넣어줌 
  def follow(self, another):
    self.followers_list.append(another)
    another.following_list.append(self)
    
    # follow함수를 통해 append된 데이터를 받기 위해 사전에 준비하는 빈 리스트 
    self.followers_list = []
    self.following_list = []

  # followers_list의 len를 확인하여 리턴해줍니다. 인스타그램 위에 팔로워 수 보이는 것 처럼요 
  def count_followers(self):
    return len(self.followers_list)

  # following_list의 len를 확인하여 리턴해줍니다. 인스타그램 위에 팔로잉 수 보이는 것 처럼요
  def count_following(self):
    return len(self.following_list)

# 우리의 유저들을 생성해주겠습니다. 모두 임의로 막 만든 정보들입니다. 
user1 = User("홍", "qweqwe@gmail.com")
user2 = User("asd", "asdasd@gmail.com")
user3 = User("zxc", "zxczxc@gmail.com")
user4 = User("dfgdfg", "dfgdfg@gmail.com")
user5 = User("234234", "sdfsdf@gmail.com")
user6 = User("sdffgh", "dfggfhj@gmail.com")
user7 = User("sdfsdf", "sdffgh@gmail.com")
user8 = User("sdf345", "qweqwe@gmail.com")
user9 = User("sdfjk09", "ljk8@gmail.com")
user10 = User("qweqsdfswe", "qweq890ijuwe@gmail.com")

# 팔로워를 우리가 직접해줘보겠습니다. 
user1.follow(user2)
user1.follow(user3)
user1.follow(user4)
user1.follow(user5)
user1.follow(user6)
user1.follow(user7)
user1.follow(user8)
user1.follow(user9)
user3.follow(user10)
user4.follow(user9)
user5.follow(user8)
user6.follow(user7)
user7.follow(user6)
user8.follow(user5)
user9.follow(user4)
user10.follow(user3)

# user1, user2, user3만 확인해보겠습니다! 
print(user1.name, user1.count_followers(), user1.count_following())
print(user2.name, user2.count_followers(), user2.count_following())
print(user3.name, user3.count_followers(), user3.count_following())

 

이렇게 간단하게 팔로워, 팔로잉 class를 만들어보았습니다. 

 

해당 코드는 참고하실 수 있도록 리플링크를 아래 공유 드립니다. 

 

보는 것과 안보고 이해한 내용을 바탕으로 코드를 직접 작성하는 것은 많이 달랐습니다. 

 

화이팅입니다. 오늘도 방문해주셔서 감사합니다. 

 

리플링크

 

 

728x90
반응형