다른 클래스를 인스턴스화하는 개체 목록에 메서드를 매핑하고 싶습니다. 모든 객체는 동일한 기본 클래스에서 상속 받고 원하는 이름의 메서드를 정의합니다.다른 개체의 목록에 메서드를 매핑하십시오.
class A:
def __init__(self, x):
self.x = x
def foo (self):
return self.x
class B(A):
def foo (self):
return self.x+1
class C(A):
def foo (self):
return self.x-1
는 이제 클래스 B와 C를 인스턴스화하는 개체의 목록을 고려 내가 그런 일을 하시겠습니까 :
result = []
for obj in [B(1), C(1)]:
result.append(obj.foo())
어떻게
는 명확 다음 코드를 고려 만들려면 목록의 각 요소에 메소드 foo를 매핑 하시겠습니까? 가능한가요? 내가 생각해 낼 수있는 가장 좋은 점은 다음과 같습니다.map(A.foo, [B(1), C(1)])
그러나 명확하게 원하는 결과를 반환하지 않습니다. 객체와 관련된 메소드를 어떻게 지정할 수 있습니까?
내가 분명히했으면 좋겠다.
NB : 저는 주로 Python2.7에서 작업하지만, "새로운"버전에 유효한 솔루션에도 똑같이 관심이 있습니다.
을 __init__입니다 암시 적으로 호출되지 않았습니다. – loki