파이썬 중급 1일차

김영목·2021년 7월 28일
0

파이썬중급

목록 보기
1/18

1교시 : 절차지향 vs 객체지향

나는 이전에 초급 파이썬 강의를 들으면서 가장 기본적으로 데이터 집합의 형태 그리고 함수들에 대해서 공부하였다. 그러한 것들을 하나 하나 위에서부터 아래로 적어나가는 것이 절차지향 코딩이다.

#차량1
car_company_1 = 'Ferrari'
car_detail_1 =  [
	{'color':'White'},
    {'horsepower':4000},
    {'price':8000}	
    ]
    
#차량2
car_company_2 = 'BMW'
car_detail_1 =  [
	{'color':'Black'},
    {'horsepower':5000},
    {'price':10000}	
    ]
   
 # 이러한 방식으로 코딩을 하면 시간도 많이 걸리고 유지와 보수에 어려움이 많음
 # 그렇다면 위의 코드들을 하나의 코드 묶음으로 다음과 같이 어떻게 될까??????
 
 car_company_lists = ['Ferrari','BMW']
 car_details = [
 {'color':'White','horsepower':4000},'price':8000}),
    {'color':'Black','horsepower':5000},'price':10000}
    ]
 
 #이러한 식으로 하나의 코드로 바꿔도 문제가 된다 그 이유는 지금처럼 자료의 양이 적을 경우는 인덱싱을 쉽게 하지만 자료가 방대해질 경우 인덱싱에서 실수가 발생해서 자료를 삭제 수정에 실수가 발생할 수 있기 때문이다.
 
#그래서 이러한 번거러움 피하고 실수가능성을 줄이기 위해 다음과 같이 클래스를 만들어 사용한다. 

class car() :
	def__init__(self, company, details) :
    		self._company = company
        	self._details = details
    	def__str__(self) :
        	return 'str : {}-{}'.format(self._company, self._details)
        def__repr__(self) :
        	return 'repr : {}-{}'.format(self._company, self._details)
 
# 결과출력

위와 같이 만든 클래스를 가지고 결과를 한번 만들어보자.

car1 = car('현대',{'color':'White','horsepower':4000,'price':8000})

print(car1.__dict__)

#결과
{'_company': '현대', '_details': {'color':'White','horsepower':4000,'price':8000}}

# 만약 우리가 print(car1)을 할경우 str : {}-{}의 형태로 나오고(비공식적 형태)
# 우리가 print(repr(car1)으로 할경우 repr : {}-{}의 형태로 나온다.
 
profile
안녕하세요 김영목입니다.

0개의 댓글