어제 너무 아파서 공부를 못했다.. 하지만 진짜 5일째 되는 날 @_@
무슨 일이 있었냐는 듯 약간의 두통만 남긴채 말짱해졌댜
이번 주말에는 밀린 과제도 하고 했던 프로젝트 올리규 쉬어야지 매일매일 인공지능,데이터 공부하는거 습관 들여야한다 !
화이띵화이띵 ~~~ >-<
##클래스의 예
mylist = [1,10,2,20]
mylist.sort()
print(mylist)
##함수로 전달하여 처리 결과를 표시할 수 있다.
클래스 설계 시 정의 3요소 :
생성자, 메서드, 멤버
ex)
객체의 내용 :
--상품
멤버 :
--상품명ㅣname
--가격 | price
--재고 | stock
--매출 | sales
##클래스의 예(1)
#MyProduct 클래스 정의
class MyProduct:
##생성자 정의
def __init__(self,name,price) :
#인수를 멤버에 저장
self.name = name
self.price = stock
self.stock = 0
self.sales = 0
클래스를 호출해야한다.
#MyProduct를 호출하여 객체 product1을 만듦
product1 = MyProduct("cake",500)
##name = "cake", price = 500으로 생성자 작동,
각 인수에 의해 멤버 name과 price초기화
##MyProduct 클래스의 생성자를 수정하여 클래스 호출시
name,price, stock의 초깃값을 설정해라. 아래의 인수명은 다음과 같다. (상품명 : name ,가격 : price, 재고 : stock)#클래스를 정의한다. class MyProduct : #생성자를 수정한다. def __init__(self,name,price,stock) : #인수를 멤버에 저장한다. self.name = name self.price = price self.stock = stock self.sales = 0 #MyPrduct를 호출하여 객체 product_1을 만든다. product_1 = MyProduct("cake",500,20) #product_1의 stock을 출력하세요 print(product_1.stock)
class MyProudct:
def __init__(self,name, price, stock) :
self.name = name
self.price = price
self.stock = stock
self.sales = 0
#구매 메서드 추가
def buy_up(self,n) :
self.stock +=n
#판매 메서드 추가
def sell(self,n) :
self.stock-=n
self.sales +=n*self.price
#개요 메서드 추가
def summary(self):
message = "called summar().\n name : " + \self.name + "\n price: " + str(self.price) + \"\n stock : " + str(self.stock) + \"\n sales ": + str(self.sales)
print(message)
MyProduct 클래스에 다음 메서드 추가
--name의 값을 취득해서 반환
-- price를 n만큼 낮춤
-- product_2의 price를 5000만큼 낮추고 summary() 메서드로 요약 정보 출력
class MyProduct :
def __init__(self, name, price, stock) :
self.name = name
self.price = price
self.stock = stock
self.sales = 0
def buy_up(self, n) :
self.stock +=n
def sell(self,n) :
self.stock-=n
self.sales +=n+self.price
#개요메서드 생략
def get_name() :
return self.name
def discount(self,n) :
self.price -=n
product_2 = MyProduct("phone",30000,100)
product_2.discount(5000)
#product2의 summary출력
product_2.summary()
MyProduc를 상속하여 10% 소비세를 적용한 MyProductSalesTax 만들기
##클래스 상속의 예
#MyProduct 클래스를 상속하는 MyProductSalesTax 정의
class MyProductSalesTax (MyProduct) :
#MyProductSalesTax는 생성자의 네 번째 인수가 소비세율을 받는다.
def__init__(self,name,price,stock,tax_rate) :
#super를 사용하면 부모클래스의 메서드를 호출 가능
super().__init__(name,price,stock)
self.tax_rate = tax_rate
#MyProductSalesTax에서 MyProduct의 get_name을
재정의(오버라이드_떺어쓰기)
def get_name(self) :
return self.name + "(소비세포함)"
#MyProductSalesTax에서 get_price_with_tax를 새로 구현
def get_price_with_tax(self) :
return int(self.price *(1 + self.tax_rate))
##MyProduct의 summary() 메서드를 재정의(오버라이드)하여 summary가 소비세를 포함한 가격을 출력하도록 만들어라.
class MyProduct :
def__init__(self,name,price,stock) :
self.name = name
self.price = price
self.stock = stock
self.sales = 0
def summary(self):
message = "called summar().\n name : " + \self.name + "\n price: " + str(self.price) + \"\n stock : " + str(self.stock) + \"\n sales ": + str(self.sales)
print(message)
def get_name(self) :
return self.name
def discount(self,n) :
self.price-=n
class MyProductSalesTax(MyProduct) :
#MyProduct의 네번째인수가 소비세율을 받음
def__init(self,name,price,stock,tax_rate):
super().__init__(name,price,stock)
self.tax_rate = tax_rate
#MyProductSalesTax에서 MyProduct의 get_name을 오버라이드
def get_name(self) :
return self.name + "(소비세포함)"
#MyProductSalesTax에 get_price_with_tax를 새로 구현
def get_price_with_tax(self) :
return int(self.price*(1+self.tax_rate))
#MyProductSalesTax에 summary메서드 제정의하고 summary
가 소비세를 포함한 가격을 출력하도록 만들어라.
def summary(self):
message = "called summar().\n name : " + \self.name + "\n price: " + str(self.get_price_with_tax()+0) + \"\n stock : " + str(self.stock) + \"\n sales ": + str(self.sales)
print(message)