320x100
# 객체지향 프로그래밍
# 객체 사용의 장점은 코드 재사용, 모듈화에 좋다고 한다.
# class의 첫글자는 대문자가 관례
# 이건 클래스라고 부른다.
# 클래스는 "속성"과 "객체"라는 이름의 "기능" 이렇게 크게 2가지 요소로 구성된다.
# 클래스는 처음 만들때 뼈대를 만들어놓고, 사용을하면서 필요한 부분을 덧붙여가는 식으로
# 만든다고 생각하면 된다.
# 따라서 init의 부분에 오는 속성은 반드시 자주변동되지 않으며, 범용적으로 쓰일때 필요한요소
# 정도로 생각하면 좀 더 도움이 되는것 같다.
class Car:
# 여기서 self는 상위클래스 Car를 의미한다.
# 여기는 속성.
# 사실 좀 디데일하게 생각해보면 뭐가 속성이고 뭐가 객체인지 구분은 불분명하나
# 속성은 좀 더 외관상 치중된 느낌이고
# 객체(기능)은 뭔가 말그대로 내재된 기능에 치중된 느낌이다.
def __init__(self,col, len):
self.color = col
self.length = len
# 여기서부터가 "객체"라고 부르는 함수인것같다.
# 요컨데 객체는 "기능"에 대한 정의가 들어간다.
# 자동차면 움직이기, 멈추기, 속력올리기 등
def doStop(self):
print('stop!')
def doStart(self):
print('start!')
def printCarInfo(self):
print(f'self.color: {self.color}')
print(f'self.length: {self.length}')
##############################
# 위의 설정된 class를 활용할때
# Car(원소1, 원소2)
# 이렇게 넣어주게 되면 Car class 가장 최 상단에 있는
# __init__메소드가 자동으로 호출이되며, 원소1과 원소2는 해당 자리를 찾아간다
# 그리고 이걸 범용적으로 활용하는 방식은 보통 변수에 선언을 해준다.
car1 = Car('red',2000)
car2 = Car('white',1800)
# 이런식으로
# 이렇게 되면 car1, car2가 각각의 Car class를 머금고 있는 오브젝트1, 오브젝트2가 되는거다
car1.printCarInfo()
car2.printCarInfo()
# 오브젝트를 설정해주었다면 해당기능을 사용하기 위해서는
# 오브젝트.해당클래스 안에 내장되어있는 함수
# 이런식으로 활용해준다.
# 참고로 class 내장 함수가 (self)라고 되어있다면 그냥 ()라고 해줘도 작동이 되지만
# (self,n1,n2)
# 라고 되어있다면 n1,n2에 해당하는 추가 원소값도 넣어줘야한다.
300x250
'개발일지 > Python' 카테고리의 다른 글
파이썬 얕은복사, 깊은복사 (메모리값 문제 해결) (0) | 2022.05.20 |
---|---|
파이썬 [class 기초원리] - 정리판2 class(클래스) 내용(객체 속성) 변경 (0) | 2022.05.20 |
파이썬 패키지 기초 원리, site-packages (0) | 2022.05.19 |
파이썬 선형검색으로 내가 찾는 숫자가 난수리스트에 있는지 확인하는 알고리즘 (0) | 2022.05.19 |
Day2. 챕터3 그리디 - 큰 수의 법칙 (0) | 2022.05.18 |