2010-11-24 3 views

답변

1

child1.MethodA()이라고합니다. self의 조회는 런타임에 수행되므로 대부분의 동적 언어의 메소드는 본질적으로 항상 가상입니다.

+0

여기서 중요한 가상은 아닙니다. C++에서 똑같은 것을 시도하고 MethodA가 가상 일 경우 Parent :: MethodA가 호출됩니다. –

3

그것을 시도하고 참조 :

class Parent(object): 
    def __init__(self, params): 
     self.method(params) 

    def method(self, params): 
     print "Parent's method called with", params 

class Child(Parent): 
    def method(self, params): 
     print "Child's method called with", params 

Child('foo') 

출력 :

자녀의 방법은 foo를 호출

+0

+1 코드를 수정하고 메소드에 자체를 추가하는 경우 – amccormack

0

파이썬의 모든 방법을 효과적으로 가상 있습니다.

>>> class Parent(object): 
     def __init__(self): 
      self.MethodA() 

    def MethodA(self): 
      print 'A method' 

>>> class child1(Parent): 
    def MethodA(self): 
      print 'child1 method' 

>>> x = child1() 
child1 method 
>>> x.MethodA() 
child1 method 
관련 문제