728x90
※ 점프투 파이썬, 프로그래머스 파이썬 무료 강의 등을 통해 정리한 내용입니다.
인스턴스와 클래스
클래스
- 함수, 변수 등을 모아두는 집합체
- e.g. 쿠키틀
인스턴스
- 클래스로 인해 생성된 객체들
- 인스턴스는 각각의 값을 갖고 있다
- 같은 값을 가진 instance1, instance2가 있을 때
- 같은 같지만 instance1 == instance2
- 본질이 같진 않다 instance1 is not instance2
- 같은 값을 가진 instance1, instance2가 있을 때
- e.g. 각각의 쿠키
클래스
클래스 만들기
- 클래스 안에 변수, 함수(메서드) 모두 넣을 수 있다
#클래스 선언하기
class Human():
#클래스에 해당하는 인스턴스 설정
person1 = Human()
person2 = Human()
#인스턴스에 값 넣기
person1.name = '곽팔두'
person1.language = '한글'
모델링
#1. 클래스 생성
class Human():
#2. 클래스에 함수 넣어주기
def create_human(name,weight):
person = Human()
person.name = name
person.weight = weight
return person
Human.create = create_human #Human 클래스에서 .create -> 함수 create_human을 의미한다
def eat(person):
person.weight += 0.1
print("{}이가 먹어서 {}kg이 되었다".format{person.name,person.weight})
def walk(person):
person.weight += 0.1
print("{}이가 걸어서 {}kg이 되었다".format{person.name,person.weight})
Human.eat = eat #eat,walk 함수를 Human()에 넣어줌
Human.walk = walk
#3.클래스 사용하기
person.create_human("두팔",60)
person.eat()
person.eat()
person.walk()
메소드
#1. 클래스 생성
class Human():
#2. 클래스에 바로 슉 함수(메소드) 넣어주기
#메소드의 첫번째 인자는 self라고 정의한다.
#메소드 호출 시 인자는 생략해도 괜찮다
def create(name,weight): #뒤에 초기화 함수 할 때 다시 사용할 예정이라 self 수정 X
person = Human()
person.name = name
person.weight = weight
return person
def eat(self):
self.weight += 0.1
print("{}이가 먹어서 {}kg이 되었다".format{self.name,self.weight})
def walk(self):
self.weight += 0.1
print("{}이가 걸어서 {}kg이 되었다".format{self.name,self.weight})
def speak(self, message):
print(message)
#3.클래스 사용하기
person.create("두팔",60)
person.eat() #self인자를 넣어주지 않아도 알아서 self 호출
person.speak("하이하이") #self인자를 넣어주지 않아도 알아서 self 호출, 두번째 인자만 프린트함
#>>하이하이로 출력
person.walk()
특수한 메소드
- __init__
- class가 시작될때 자동으로 시행되는 초기화 함수
- __str__
- 문자열로 만들어줌
class Human( ):
'''인간'''
def __init__( self, name, weight ): #초기화 함수에 인자 넣어서도 사용 가능
'''초기화 함수'''
self.name = name
self.weight = weight
def __str__( self )
'''문자열화 함수'''
return "{} ( 몸무게 {}kg )".format( self.name, self.weight )
person = Human( "사람", 60.5 ) # 초기화 함수 사용
print( person ) # 문자열화 함수 사용
#점프투파이썬 계산기 만들어보기
class Fourcal():
def __init__(self,first,second):
self.first = first
self.second = second
#def setdata(self,first,second):
# self.first = first
# self.second = second
def add(self):
result = self.first + self.second
return result
def mul(self):
result = self.first * self.second
return result
def sub(self):
result = self.first - self.second
return result
def div(self):
result = self.first / self.second
return result
#상속하여 제곱 계산식 만들기
class MoreFourcal(Fourcal):
def pow(self):
result = self.first ** self.second
return result
#오버라이딩 하여 0으로 나눌 경우 0 리턴하게 만들기
class SafeFourcal(Fourcal):
def div(self):
if self.second == 0:
return 0
else :
return self.first / self.second
'👩💻LEARN : ML&Data > Code' 카테고리의 다른 글
[자료구조와 알고리즘] #5. 스택 (0) | 2023.04.04 |
---|---|
[자료구조와 알고리즘] #3. 연결리스트:양방향 (0) | 2023.04.03 |
[자료구조와 알고리즘] #3. 연결리스트:단방향 (0) | 2023.04.02 |
[자료구조와 알고리즘] #2. 재귀 알고리즘 (0) | 2023.04.02 |
[자료구조와 알고리즘] #1. 배열 (0) | 2023.04.02 |