사용하는 이유?
추상화된 현실의 개념 을 구체적인 파이썬 코드로 표현하기 위해서
그러니까, 내가 만약 내가 키우는 고양이를 클래스로 만들었다고 하자.
고양이 클래스 가 그 고양이의 특징(이름,종류,색)같은 구체적인 값을 가지면 인스턴스 라는게 되서 실제 메모리를 할당받아서 뭔가 할 수 있게됨
클래스 정의하기
메소드 : 클래스에 묶여서 클래스와 인스턴스와 관계되는 일을 하는거 (함수와 비슷함)
class ClassName: // ※ 콜론 : 주의
< 구문 - 1 >
메소드
< 구문 - n >`
클래스 정의하기 예시
class Cat:
def yumi(self):
print("귀엽다.") // 여기서 yumi() 메소드 정의 #여기 까지 클래스 정의하기
cat1 = Cat() // 인스턴스 생성 # 여기부턴 인스턴스 생성과 메소드 호출하기
cat1.yumi() // 메소드 호출 ( cat1 이 가지고 있는 기능("귀엽다") 을 호출가능)
#.(마침표) 연산자 사용
# 결과
귀엽다.
인스턴스 변수 생성 예시
class Cat:
def info(self): # info() 메소드 // 인스턴스 변수 name과 color를 생성//
self.name = "유미" # 인스턴스 변수 name 생성
self.color = "회색" # 인스턴스 변수 color
print('고양이 이름은', self.name, ' 색깔은', self.color
cat = Cat() # 인스턴스 생성
cat.info() # 인스턴스의 메소드 실행
# 결과
고양이 이름은 유미 색깔은 회색
self
class Cat:
def __init__(self,name = "유미", color = "회색"):
self.name = name
self.color = color
#고양이 클래스의 정보를 출력하는 메소드
def info(self):
print('고양이의 이름은' ,self.name,' 색깔은 ', self.color)
cat1 = Cat("유미", "회색") # cat1 인스턴스 생성
cat2 = Cat("요미","회색") # cat2 인스턴스 생성
cat1.info()
cat2.info()
한 내용 정리
실 생할 예시 사용 + 코드 직접 써보고 정리 아주 잘했어.
글도 좀도 정도되고 이쁘게 잘썼네.
👍