파이썬에는 super()를 어떻게 쓰나요?


발생하는 문제 및 실행환경

Perl이나 Java에서는 이렇게 super()를 써서 부모 클래스의 메소드를 불렀었는데

package Foo;

sub frotz {
    return "Bamf";
}

package Bar;
@ISA = qw(Foo);

sub frotz {
   my $str = SUPER::frotz();
   return uc($str);
}

파이썬에서는 어떻게 써야 할지를 모르겠습니다. 파이썬에서는 부모 클래스에 접근할 수 없나요?

  • 2016년 01월 27일에 작성됨

조회수 323


1 답변


좋아요
0
싫어요
채택취소하기

파이썬은 new-style 클래스에서만 super()로 부모 클래스 접근이 가능합니다.

예를 들어,

class Foo: #python3에서는 new-style, python2에서는 old-style
    def printFoo(self):
        print("Foo!")

class Bar(Foo):
    def __init__(self):
        super(Bar, self).printFoo()

myBar = Bar()

의 코드는

python3에서는 "Foo"를 출력하지만 python2에서는 에러가 발생합니다.

  • 2016년 01월 27일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close