파이썬 객체에 메소드를 동적으로 추가하는 방법?
이 코드에서는 함수를 정의합니다. setattr()
인스턴스에 바인딩합니다. 이제 setattr()
는 마치
클래스 자체를 변경하지 않습니다. 이 메소드는 특정 인스턴스에만 추가됩니다.
를 사용하는 것이이를 달성하는 주요 방법입니다. 핵심은<code class="python">class MyClass: def __init__(self, name): self.name = name obj = MyClass("Example") def new_method(self): print(f"Hello from the dynamically added method! My name is {self.name}") setattr(obj, 'dynamic_method', new_method) obj.dynamic_method() # Output: Hello from the dynamically added method! My name is Example</code>인스턴스
에 메소드를 추가하는 것이 클래스 정의를 변경하지 않는다는 것을 이해하는 것입니다. 이 메소드는 해당 특정 인스턴스에만 추가됩니다. new_method
약간 다른 예제로 설명하자 : setattr(obj, 'dynamic_method', new_method)
여기서 obj
메소드는 dynamic_method
클래스의 모든 인스턴스가 아니라 obj
에만 추가됩니다. 나중에 생성 된 또 다른 인스턴스는 dynamic_method
메소드가 없을 것입니다. MyClass
파이썬 객체에 동적으로 추가되는 방법을위한 모범 사례는 무엇입니까? obj
위 내용은 파이썬의 객체에 메소드를 동적으로 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!