기존 Python 개체에 메서드를 동적으로 추가
클래스 정의 메서드와 달리 Python의 기존 개체에 메서드를 추가하는 것은 일반적으로 권장되지 않습니다. 그러나 이것이 필요할 수 있는 시나리오도 있습니다.
함수 및 바인딩된 메서드 이해
Python에서 함수는 바인딩된 메서드와 다릅니다. 바인딩된 메서드는 인스턴스와 연결되어 있으며 이를 메서드의 첫 번째 인수로 전달합니다. 반면, 함수는 바인딩 해제됩니다.
클래스 속성 수정
해당 정의를 수정하여 클래스에 메서드를 추가할 수 있습니다.
class A: def foo(self): print("foo") A.fooFighters = fooFighters # Attach the fooFighters function as a method
이렇게 하면 기존을 포함하여 클래스 A의 모든 인스턴스가 업데이트됩니다. ones.
인스턴스에 메서드 연결
특정 인스턴스에 메서드를 연결하려면 type.MethodType 함수를 사용할 수 있습니다.
import types a.barFighters = types.MethodType(barFighters, a) # Bind the barFighters function to instance a
이렇게 하면 메서드가 올바르게 바인딩됩니다. 인스턴스.
제한 사항
인스턴스에 메서드를 동적으로 추가하는 것이 가능하지만 다음과 같은 제한 사항이 있습니다.
대안
객체에 메서드를 직접 추가하는 대신 다음 대안을 고려하세요.
위 내용은 Python 개체에 메서드를 동적으로 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!