python/Django

[Django] super 사용하기

http://portfolio.wonpaper.net 2022. 5. 12. 22:45

python 상에서 super 상위클래스 사용방법 여타의 다른 키워드와 동일하게  super 키워드를 쓴다.

 

 

class ExCreateView(CreateView):
    def form_valid(self, form):
        # form.instance.user = self.request.user
        return super(ExCreateView, self).form_valid(form)

 

python2 에서는

class A(object):
   def foo(self):
      print "A"

class B(A):
   def foo(self):
      print "B"    
      super(B, self).foo()

class C(B):
   def foo(self):
      print "C"    
      super(C, self).foo()

c = C()
c.foo()

실행결과

C
B
A

 

 

 

python3 에서는

class A(object):
   def foo(self):
      print("A")

class B(A):
   def foo(self):
      print("B")    
      super().foo()

class C(B):
   def foo(self):
      print("C")
      super().foo()

c = C()
c.foo()

 

실행결과

C
B
A

 

 

 

참고 포스팅 : https://hashcode.co.kr/questions/3686/django%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-python-super%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C