객체지향프로그래밍 Tutorial

YU NA Joe·2022년 6월 18일
0

용어 정리

  • 객체는 속성(변수)과 행동(메소드, 함수)으로 이루어져 있다.
  • 메소드는 인스턴스, 클래스, 정적 메서드로 이루어져 있다.
인스턴스 변수 정의하기 
- 인스턴스이름.속성이름(instance 변수) = "속성에 넣을 값"
- 인스턴스 변수를 사용하려면 미리 정의해야한다.
- 인스턴스 변수는 각긱 인스턴스, 자신만의 속성이다.
---------------------------------------------------------
__init__ 메소드 
- underbar가 앞뒤로 두개씩 있는 메소드는, magic method(특수메소드)라 한다.
- 특수 메소드는 특정 상황에 자동으로 호출되는 메소드
- __init__은 인스턴스가 생성될 때 자동으로 호출

---------------------------------------------------------
## __str__ 메소드 
- 특수 메소드는 특정 상황에 자동으로 호출되는 메소드
- __str__은 print()할때 자동으로 호출된다

클래스를 만들기

class Person:
    def __init__(self, name, major, email):
        self.name = name
        self.major = major
        self.email = email
        
p1 = Person("yuna1", "econ", "yunajoe@gmail.com")
p2 = Person("yuna2", "CS", "yunajoe@gmail.com")

print(p1.name)   # yuna1
print(p1.major)  # econ
# 실습 -  맞팔해요

class User:
    def __init__(self,name, email, password):
        self.name= name
        self.email = email
        self.password = password        
        self.following_list = []    # 이 유저가 팔로우하는 유저 리스트
        self.followers_list = []
    
    def follow(self,another_user):
        self.following_list.append(another_user)
        another_user.followers_list.append(self)
        
    def num_following(self):
        return len(self.following_list)
    
    def num_followers(self):
        return len(self.followers_list)
        
        
user1 = User("Young", "young@codeit.kr", "123456")
user2 = User("Yoonsoo", "yoonsoo@codeit.kr", "abcdef") 

user1.follow(user2)
user2.follow(user1)

class Person:
    def __init__(self, name, major, email):
        self.name = name
        self.major = major
        self.email = email 
        
    def hello(self):
        print(f"안녕하세여 저는 {self.name}입니다")
        
    def __str__(self):
        return f"이름: {self.name}, 전공: {self.major}"
        
p1 = Person("yuna1","economics", "yunajoe@gmail.com" )        
p2 = Person("yuna2","economics", "yunajoe@gmail.com" )

print(p1)  # 이름: yuna1, 전공: economics
print(p2)  # 이름: yuna2, 전공: economics
class Person:
    pass 

# 인스턴스 생성
p1 = Person()
p2 = Person()

# 인스턴수 변수 생성
p1.name="yuna1"
p1.major="economics"

p2.name="yuna2"
p2.major="CS"

print(p1.name)  # yuna1
print(p2.name)  # yuna2

print(p1.major)  # economics
print(p2.major)  # CS

출처:

0개의 댓글