부모님의 생성자 중 일부를 제외해야한다면 개인적으로 디자인에 결함이있는 것 같습니다. 이제는 부모 클래스를보다 일반적인 것으로 만들고 현재 부모를 부모로 만들고 현재 자식을 모두 새 부모로부터 상속받을 수 있습니다.
정말로 그 패턴을 고수하고 싶다면 이벤트를 바인딩 해제하면됩니다. 이것이 이벤트에 연결된 유일한 콜백이라면 그냥 할 수 있습니다.
x = Child()
x.controller.unbind('<Return>')
편집 :
나의 다음 제안 대신 상위 클래스 내부에 별도의 방법으로 바인딩을 이동하는 것입니다. 예를 들어.
class Parent:
def __init__(self, controller, parent):
self.controller = controller
...
def averageTesting(variable):
if len(variable) > 0:
return variable
else:
messagebox.showerror("Error", "Enter a valid variable")
def initializeBinding(self):
self.controller.bind('<Return>', self.averageTesting)
... # plus anymore bindings that only the parent must have
class Child(Parent):
def __init__(self):
...
이제 부모를 사용하고 싶을 때 이렇게 할 수 있습니다.
p = Parent(...)
p.initializeBinding()
반면 Child 개체를 인스턴스화 할 때는 메서드를 호출하지 않습니다.
내 자녀 및 부모 클래스에서 바인딩을 해제하려고했지만 작동하지 않았습니다. –
바인딩 해제를 시도하는 것보다 더 좋은 방법은 이벤트 바인딩을 호출하는 일종의 초기화 메소드를 만드는 것입니다. 이렇게하면 바인딩하는 함수를 호출하기 전까지는 하위 클래스가 바인딩되지 않습니다. –
초기화 방법이란 무엇입니까? 예를 들어 줄 수 있습니까? 나는 또한 전역 바인드 생성 및 바인딩 해제 방법을 시도했지만 ... 내가 그랬을 때 ... 잘 ... 아이가 여전히 부모님을 가지고있다. –