객체를 정의한 것 (객체의 설계도를 말한다.)
데이터 필드 (멤버 변수, 속성)
메소드
기본 사용 법
class 클래스이름:
클래스 맴버 변수
메소드
암묵적인 규칙
클래스 실제 사용 예시
class Car:
def move(self):
print("move")
class SportsCar:
pass
모든 메소드의 첫번째 매개변수
메소드의 정의에는 사용되지만, 호출에는 사용되지 않는다.
객체 자신을 참조하여 클래스에 정의된 멤버의 접근할때 사용한다.
클래스 안에 있는 메서드는 무조건 self가 들어가야한다.
self를 통해 변수를 만들 수 있다.
사용 예시
class Person:
def say(self):
self.name = "셀프 이름 작성" # name 매개변수에 값을 저장한다.
print("Hello")
def eat(self, food):
self.food = food # 매개 변수 받은 것을 self로 저장한다.
print(f"{self.food} 먹는다.")
print(f"{self.name} 출력") # 저장한 self.name을 불러올 수 있다.
self.sleep()
def sleep(self):
print(f"{self.food} 먹고 잔다") # 저장한 self.food를 불러올 수 있다.
person_1 = Person()
person_1.say()
person_1.eat("밥")
person_1.sleep()
초기화할 때 동작 방법 및 여부
init 함수로 무조건 사용 해야한다. (생성과 동시에 초기화를 진행함)
사용 예시
class Person:
def __init__(self, name, age, gender, phone): # 매개변수로 받은 값 저장
self.name = name
self.age = age
self.gender = gender
self.phone = phone
print("initialize")
def say_name(self):
print(self.name)
def introduce(self):
print(f"이름 : {self.name}, 나이 : {self.age}, 성별 : {self.gender}")
# 초기화를 하면서 값을 할당 받아 저장한다.
person_3 = Person("이름", 20, "남자", "010-5555-5555")
person_3.say_name() # 초기화 하면서 값을 할당 한 후 사용해보는 메서드
person_3.introduce()
부모 클래스의 정의되어 있는 메서드를 전부 사용 할 수 있다.
부모 클래스 중 같은 이름의 메서드를 정의 했다면, 자식 메서드가 사용된다.
사용 예시
# Animal 클래스
class Animal:
def __init__(self, name): #초기자
self.name = name
print(f"애니멀 {self.name}이 생성됨.")
def say(self):
print("")
def change_aniimal(self, name):
self.name = name
print(f'{self.name}으로 교체 됨')
# 상속 사용법
# Dog 클래스 (Animal 상속 함)
# 부모 -> Animal, 자식 -> Dog
class Dog(Animal):
def say(self): # 부모에게 같은 메서드가 있어도 재 정의가 가능하다.
print("ㅁ어멍")
my_dog = Dog("검둥이")
my_dog.say() # 'ㅁ어멍' 출력
my_dog.change_aniimal("으응") # 부모의 메서드를 사용 할 수 있다.
# Cat 클래스 (Animal 상속 함)
class Cat(Animal):
def say(self):
print("야야옹")
my_cat = Cat("고얭이")
my_cat.say()