[Python] 클래스

PurinYun·2023년 11월 16일
0

AIffel

목록 보기
13/75

클래스

클래스를 사용하려면 객체를 만들어야 한다.
객체를 초기화해주는 생성자(매직)메소드는 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()				# .메소드

화이팅!

생성자(init), 속성 포함 클래스

: 객체를 만들 때 호출되는 특별한 메소드
: __가 붙은 메소드: 파이썬이 자동으로 호출해주는 매직 메소드
: 생성자의 매개변수로는 자기 자신(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는
    다른 메소드에서도 사용이 가능함

1. 객체(python) 생성

class Aiffel:
	def __init__(self, name):		
    	self.new = name				
    def cheer(self):
    	print(f"{self.new}, 화이팅!")
        
python = Aiffel('윤혜윤')

2. 자세히

class Aiffel:
	def __init__(python, '윤혜윤'):		
    	self.new = name				
    def cheer(self):
    	print(f"{self.new}, 화이팅!")
        
python = Aiffel('윤혜윤')

3. 더 자세히

class Aiffel:
	def __init__(python, '윤혜윤'):		
    	python.new = '윤혜윤'				
    def cheer(self):
    	print(f"{self.new}, 화이팅!")
        
python = Aiffel('윤혜윤')

4. 메소드(.cheer) 실행

class Aiffel:
	def __init__(python, '윤혜윤'):		
    	python.new = '윤혜윤'				
    def cheer(self):
    	print(f"{self.new}, 화이팅!")
        
python = Aiffel('윤혜윤')
python.cheer()

실습

좋아하는 영화의 주인공 이름을 넣어서 Aiffel 클래스의 객체를 만들어보세요!


class Aiffel:
    def __init__(self, name):
        self.new = name
    def cheer(self):
        print(f"{self.new}라는 이름은 내가 제일 좋아하는 영화의 주인공 이름이야!")

python = Aiffel('셀린느')
python.cheer()

셀린느라는 이름은 내가 제일 좋아하는 영화의 주인공 이름이야!

init 앞에 빈칸 한칸 필수
{}뒤에 콤마 찍을 필요 없음

profile
Fantivation

0개의 댓글