클래스를 사용하려면 객체를 만들어야 한다.
객체를 초기화해주는 생성자(매직)메소드는 init 이다.
생성자(매직)메소드의 매개변수에는 self(자신)과 name(속성값)이 들어간다.
생성자(매직메소드)의 명령블록에는 self.new = name 이 들어있다.
클래스(Class): 제품의 설계도 (객체를 만들기 위한 변수,메서드 집합)
객체(Object): 설계도로 만든 제품
인스턴스(Instance): 메모리에 삭제되지 않고 살아있는 객체
생성자(Constructor): 객체를 만들 때 실행되는 함수
속성(Attribute): 클래스 안의 변수
메서드(Method): 클래스 안의 함수
class 클래스이름:
def 메서드이름(self):
명령
1) 클래스이름은 대부분 대문자로 시작
2) 캐멀케이스(ex.AiffelGood)
3) 매개변수는 꼭 self를 넣기
4) 클래스 호출 방법
객체 = 클래스이름() 객체.메소드()
class Aiffel: # 대문자로 시작
def sheer(self) # 매개변수 self
print("화이팅!")
python = Aiffel() # 객체 만들기
python.cheer() # .메소드
화이팅!
: 객체를 만들 때 호출되는 특별한 메소드
: __가 붙은 메소드: 파이썬이 자동으로 호출해주는 매직 메소드
: 생성자의 매개변수로는 자기 자신(self)과 속성값이 들어갈 수 있음
class Aiffel:
def __init__(self, name): #생성자 안에 name은 속성
self.new = name #self.new는 속성 자체
def cheer(self):
print(f"{self.new}, 화이팅!")
python = Aiffel('윤혜윤')
python.cheer()
init 메소드: 객체를 만들 때 호출되는 매직 매소드
객체를 초기화
생성자의 매개변수로 self(자기자신), name(속성값)이 들어감
생성자의 명령 블록의 self.속성 은
생성자 메소드에서 받은 인자라는 뜻인
self.new = name 이 쓰임
추후에 이 클래스를 사용하는 개발자가 속성값을 입력하면
그 속성값을 받을 '속성 자체'가 필요하게 된다.
self.new 는 속성값name을 받는 '속성 자체'이다.
(통상적으로 self.name 으로 적지만, 구분을 위해 다르게 적음)
속성값 name을 할당 받은 '속성 자체' self.new는
다른 메소드에서도 사용이 가능함
class Aiffel:
def __init__(self, name):
self.new = name
def cheer(self):
print(f"{self.new}, 화이팅!")
python = Aiffel('윤혜윤')
class Aiffel:
def __init__(python, '윤혜윤'):
self.new = name
def cheer(self):
print(f"{self.new}, 화이팅!")
python = Aiffel('윤혜윤')
class Aiffel:
def __init__(python, '윤혜윤'):
python.new = '윤혜윤'
def cheer(self):
print(f"{self.new}, 화이팅!")
python = Aiffel('윤혜윤')
class Aiffel:
def __init__(python, '윤혜윤'):
python.new = '윤혜윤'
def cheer(self):
print(f"{self.new}, 화이팅!")
python = Aiffel('윤혜윤')
python.cheer()
class Aiffel:
def __init__(self, name):
self.new = name
def cheer(self):
print(f"{self.new}라는 이름은 내가 제일 좋아하는 영화의 주인공 이름이야!")
python = Aiffel('셀린느')
python.cheer()
셀린느라는 이름은 내가 제일 좋아하는 영화의 주인공 이름이야!
init 앞에 빈칸 한칸 필수
{}뒤에 콤마 찍을 필요 없음