Python의 유연한 반사: Java의 Class.forName()과 동일
Python의 반사 기능은 Java에 비해 훨씬 더 다양하고 사용자 친화적입니다. 클래스.for이름(). 정확히 일치하는 것이 없을 수도 있지만 Python의 리플렉션 메커니즘을 이해하면 비슷한 기능을 얻을 수 있습니다.
Python의 리플렉션 접근 방식
Python의 리플렉션은 몇 가지 필수 기술을 활용합니다.
사용자 정의 함수 : get_class
Class.forName()과 동등한 기능을 제공하기 위해 다음 Python 함수를 활용할 수 있습니다:
<code class="python">def get_class(kls): parts = kls.split('.') module = '.'.join(parts[:-1]) m = __import__(module) for comp in parts[1:]: m = getattr(m, comp) return m</code>
사용 예
이 함수를 사용하면 정규화된 이름에서 클래스 참조를 얻을 수 있습니다.
<code class="python">>>> D = get_class("datetime.datetime") >>> D <type 'datetime.datetime'> >>> D.now() datetime.datetime(2009, 1, 17, 2, 15, 58, 883000)</code>
작동 방식
결론
Python의 리플렉션은 클래스와 객체를 조작하는 강력하고 유연한 방법을 제공합니다. Java의 Class.forName()과 다르지만 유사한 목표를 달성하기 위해 보다 적응력이 뛰어나고 기능이 풍부한 접근 방식을 제공합니다.
위 내용은 Python에서 Java의 Class.forName()과 동등한 기능을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!