2014-12-01 2 views
-2

저는 지옥으로 덤프 될까봐 걱정하지만 클래스 인스턴스에서 변수 이름을 덮어 쓰면 클래스에서 methode를 실행하는 방법을 알지 못합니다.자식 특성을 덮어 쓰면 부모 함수에 액세스하십시오.

class foo(): 
    def do_stuff(self, name): 
     self.new = name 

inst = foo() 
inst.do_stuff("Hello") 
inst.do_stuff = 19 

이것은 시작 위치입니다. 문제가 실행되는 동안 변수 do_suffinst에 선언되어 함수가 덮어 쓰기됩니다. 내 문제는 어떻게 변수를 변경하려면 newinst 변수를 변경하려면 메서드 대신 호출됩니다 관리합니까?

나는 super() 가야 할 길이라고 생각했지만이 방법을 제대로 구현하지 못했습니다. 유감스럽게도 제 영어 실력이 좋지 않으므로 정확한 질문을 검색하는 것을 망쳤습니다.

+0

가 어떻게 사용하려고 않은 기본 클래스의 방법을 파일 덮어 쓰기 할 때 부모와 아이를 가지고, 당신은 슈퍼를 사용하는 클래스의 인스턴스를 해달라고 '슈퍼', 그리고 어떤 방식으로 작동하지 않았습니까? –

답변

2

do_stuff 속성을 덮어 써야합니까? 너는 그렇게해서는 안된다.

foo.do_stuff(inst) 
+0

제 예제는 꽤 나빴습니다. 지금보십시오. 내가 원하는 것은 "테이블"이 dict에서 상속받은 "데이터베이스"와 같은 것을 작성하는 것이므로 foo [ "table1"] = Table()에 의해 새로운 테이블을 생성 할 수 있습니다. 내 문제는 이미 기존 함수와 같은 이름을 가진 새 테이블이 있으면 super()를 통해 함수를 호출해야한다고 생각합니다. – Mirodin

관련 문제