inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬 기초부터 실전 100% 활용

클래스는 뭐예요?

클래스 질문

388

김명수

작성한 질문수 11

1

class Fishcakemaker:

   

    def __init__(self, **par):  # 이것 때문에 오류가 났었구나... # 생성자는 이렇게 써주어야 함 __(_표시 2개)

        self.size = 10

        self.flavor = "팥"

        self.price = 100

        

       

        if "size" in par:   # par라는 parameter에 size의 값이 있으면, 그 페러미터로부터 얻어지는 size의 값을 기본값으로 변경

            self.size = par.get("size")

            

    def __del__(self):  

        print("삭제되었습니다")

    

    

    def __str__(self):  # 이 함수명은 정해져 있음

       return "<clss Fishcakemaker (size = {}, flavor = {}, price = {}>".format(self.size, self.flavor, self.price)

    

    

    def show(self):

        

        print("붕어빵 크기{}".format(self.size))

        

class MarketGoods(Fishcakemaker): # 위 클래스를 상속받음

   

    def __init__(self, margin = 1000, **kwargs): # 해당 클래스가 받은 parameter를 상속 받은 클래스에게도 집어 넣는다.

        

        super().__init__(**kwargs)  # 상속받은 class의 생성자를 호출하기 위해서 super를 씀

        self._market_price = self.price + margin  # 여기 있는 price는 Fishcakemaker에서 가져온 것

        

        

    def show(self):

        print(self._market_price)

        

fish1= MarketGoods(flavor = 20, price = 500)

fish1.show()

저는 단지,  market price만 구하고 싶었을 뿐인데,

여기서  부모 클래스에 있는 del 메서드가 실행되어서

삭제되었습니다. 라는 문구가 뜹니다. 

del fish1이라고 써준 것도 아닌데, 왜 자동으로 출력이 

될까요? 감사합니다. 

python 웹-크롤링

답변 2

0

김명수

그러네요,,! 감사합니다:) 

0

남박사

올려주신 코드를 정리해서 실행해봤더니 아무 문제 없이 실행됩니다만...

혹시 들여쓰기나 그런 부분 확인해보셨나요?

제가 수정한 부분은 하나도 없는 코드 입니다.

class Fishcakemaker:
    def __init__(self, **par):  # 이것 때문에 오류가 났었구나... # 생성자는 이렇게 써주어야 함 __(_표시 2개)
        self.size = 10
        self.flavor = "팥"
        self.price = 100

        if "size" in par:   # par라는 parameter에 size의 값이 있으면, 그 페러미터로부터 얻어지는 size의 값을 기본값으로 변경
            self.size = par.get("size")

    def __del__(self):  
        print("삭제되었습니다")
    def __str__(self):  # 이 함수명은 정해져 있음
        return "<clss Fishcakemaker (size = {}, flavor = {}, price = {}>".format(self.size, self.flavor, self.price)
    def show(self):
        print("붕어빵 크기{}".format(self.size))

class MarketGoods(Fishcakemaker): # 위 클래스를 상속받음
    def __init__(self, margin = 1000, **kwargs): # 해당 클래스가 받은 parameter를 상속 받은 클래스에게도 집어 넣는다.
        super().__init__(**kwargs)  # 상속받은 class의 생성자를 호출하기 위해서 super를 씀
        self._market_price = self.price + margin  # 여기 있는 price는 Fishcakemaker에서 가져온 것
    def show(self):
        print(self._market_price)


fish1= MarketGoods(flavor = 20, price = 500)
fish1.show()

38강 = 연산자 더하고 빼기

0

60

2

주석처리

0

116

1

함수의 파라미터값 msg

0

155

1

강의자료 이미지 안나옴

0

239

3

강의자료 질문 두번째

0

165

3

강의자료 관련 질문

0

116

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

235

1

소수 너무 어려워요

0

245

1

imagefont 함수 사용

0

239

1

pylint

0

357

1

add 함수 문의 ㅠㅠ

0

283

1

형식 문의드립니다.

0

209

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

602

1

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

0

253

1

zsh: command not found: pylint

0

269

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

546

1

질문드립니다.

1

374

2

list.reverse() 출력에 대해서 질문있습니다.

1

433

1

데코레이터 함수 및 동작시간 질문입니다.~

1

323

2

opencv 사용하면서 궁금한점 (해상도)

1

781

1

질문드립니다.

1

299

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

445

1

크롤링안되는 현상 문의 드립니다.

1

421

1

파이썬 크롤링 관련 문의

1

277

1