용어 정리
- 객체는 속성(변수)과 행동(메소드, 함수)으로 이루어져 있다.
- 메소드는 인스턴스, 클래스, 정적 메서드로 이루어져 있다.
인스턴스 변수 정의하기
- 인스턴스이름.속성이름(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
출처: