Deep Learning/Natural Language Processing

[python]Class

frances._.sb 2022. 2. 9. 11:38
728x90
  • 객체 지향(용어 및 구체적인 이미지)
용어 구체적인 이미지
클래스(정의) 자동차 설계도
생성자(함수) 자동차 공장
멤버(변수) 휘발유의 양, 현재속도 등
메서드(함수) 브레이크, 엑셀, 핸들 등
인스턴스(실체) 공장에서 만들어진 실제 자동차

 

1. 생성자( constructor ) : 클래스를 만들 때 자동으로 호출되는 특수 함수.

      → 파이썬에서 생성자의 이름은 반드시 __init__(self)

2. 메서드( method ) : 클래스가 갖는 처리, 즉 함수.

3. 멤버( member ) : 클래스가 가지는 값, 즉 변수. → private / public 으로 나뉜다.

 

 

Example.

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 summary().\n name: " + self.get_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):
        self.price -= n
        
class MyProductSalesTax(MyProduct):
    #MyProductSalesTax는 생성자의 네 번째 인수가 소비세율을 받습니다.
    def __init__(self, name, price, stock, tax_rate):
        #super()를 사용하면 부모 클래스의 메서드를 호출할 수 있습니다.
        #여기에서는 MyProduct 클래스의 생성자를 호출합니다.
        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가 소비세를 포함한 가격을 출력하도록 만드세요.
    def summary(self):
        message = "called summary().\n name: " + self.get_name() + \ 
        "\n price: " + str(self.price) + \ 
        "\n stock: " + str(self.stock) + \  
        "\n sales: " + str(self.sales)  
        print(message)
        
product_3 = MyProductSalesTax("phone", 30000,100,0.1)
print(product_3.get_name())
print(product_3.get_price_with_tax())
product_3.summary()

phone(소비세 포함)
33000
called summary().
 name:phone(소비세 포함)
 price:33000
 stock:100
 sales:0
728x90
반응형

'Deep Learning > Natural Language Processing' 카테고리의 다른 글

Document Classification (vector space model)  (0) 2022.03.25
[python] 3D 그래프  (0) 2022.02.10
[python] 데이터 시각화_matplotlib  (0) 2022.02.10
[python]Pandas  (0) 2022.02.09
[python]Numpy  (0) 2022.02.09