Python 3 방법 에 대한 덮어 쓰기 와 슈퍼 함수 에 대한 상세 한 설명

\#덮어 쓰기
덮어 쓰기:계승 관계 에서 하위 클래스 는 기본 클래스 와 같은 이름 의 방법 을 실 현 했 습 니 다.하위 클래스 의 인 스 턴 스 가 이 방법 을 호출 할 때 인 스 턴 스 는 하위 클래스 의 덮어 쓰기 버 전 을 호출 합 니 다.
쉽게 말 하면 샤 오 밍 은 그 에 게 ⑨ 의 자전 거 를 물 려 받 아 자신의 개조 과정 을 거 쳐 전동 차 가 되 었 다.그러면 샤 오 밍 은 매번 전동 차 를 탔 다.(이 전동 차 는 발 로 밟 을 수 있 고 뒤쪽 밤 은 계속 사용 할 수 있다)
간단 한 밤 을 들 어 라.

class Bicycle():
  def run(self):
    print('      run  ')

class E_Bicycle(Bicycle): #      
  def run(self):
    print('      run  ')

b = Bicycle()
b.run()

e_b = E_Bicycle()
e_b.run()
인쇄 결과:

      run  
      run  
주의:방법의 커버 는 반드시 동명 이인 이 어야 합 니 다.예 를 들 어 이 밤 은 계승 과 파생 관계 이 고 방법 은 동명 이인 입 니 다.다만 print 가 바 뀌 었 을 뿐 입 니 다.
이 밤 은 특별히 뚜렷 하지 않 으 니 조금 만 고 쳐 라.

class Bicycle(object):
  def __init__(self, name):
    self.name = name

  def run(self):
    print('  %s run  '%self.name)

class E_Bicycle(Bicycle): #      
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def run(self):
    print('  %s run  ,      %s  '%(self.name, self.age))

b = Bicycle('   ')
b.run()

e_b = E_Bicycle('   ', 3)
e_b.run()
name 값 을 바 꾸 고 age 인 자 를 추가 하 였 습 니 다.
그렇다면 부모 클래스 의 방법 이나 속성 을 어떻게 호출 합 니까?
#super
슈퍼(cls,obj)바 인 딩 초 클래스 의 인 스 턴 스 를 되 돌려 줍 니 다(obj 를 가 려 면 cls 형식의 인 스 턴 스 여야 합 니 다)
슈퍼 의 역할:부모 클래스 덮어 쓰기 간접 호출 방법
밤 을 들다

#   super               

class A:
  def work(self):
    print('A.work   ')

class B(A):
  '''B   A '''
  def work(self):
    print('B.work   ')

  def super_work(self):
    '''  B    work  '''
    self.work() # B.work   ,        ,       
    super(B, self).work() # A.work   ,   super          
    super().work() # A.work               ,    (   )  

b = B()
# b.work() # B.work   ,     
# super(B, b).work() # A.work   (  super   B   )
# super().work() # RuntimeError: super(): no arguments        ,                
b.super_work() #     ,      
호출 기본 클래스 의 초기 화 방법 보이 기:
하위 클래스 에서 실현init__(두 밑줄 친 init 방법,보이 지 않 는 것 같 음)방법,기본 구조 방법 은 호출 되 지 않 습 니 다.이 때 호출 을 표시 해 야 합 니 다.
밤 을 들다

#            
class Human:
  def __init__(self, n, a):
    self.name = n
    self.age = a
    print('Human          ')

  def infos(self):
    print('  ', self.name)
    print('  ', self.age)

class Student(Human):
  def __init__(self, n, a, s=0): 
    # super(Student, self).__init__(n, a) #                  
    super().__init__(n, a) #                  
    self.score = s #       
    print('Student          ')

  def infos(self): #      
    super().infos() #          
    print('   :', self.score)

s1 = Student('  ', 20, 80)
s1.infos() 
인쇄 결과:

Human          
Student          
     
   20
   : 80

상술 한 자전거 와 전동 차 의 밤 을 고 쳐 쓴다.

class Bicycle(object):
  def __init__(self, name):
    self.name = name
  
  def run(self):
    print('  %s run  '%self.name)
    
class E_Bicycle(Bicycle): #      
  def __init__(self, name, age):
    super().__init__(name) #      name  
    self.age = age
  
  def run(self):
    super().run() #      run  
    print('     %s  '%(self.age)

b = Bicycle()
b.run()

e_b = E_Bicycle('   ', 3)
e_b.run()

이번 절 은 여기까지 하 겠 습 니 다.
이 파 이 썬 3 의 방법 에 대한 커버 와 슈퍼 함수 에 대한 상세 한 설명 은 바로 소 편 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기