Python 3.x의 Super Magic: Unraveling the Mysteries
Python 3.x는 super() 메서드에 놀라운 변형을 도입했습니다. 인수 없이 호출합니다. 겉보기에 무해해 보이는 이 변경은 내부적으로 상당한 결과와 고유한 마법을 가져옵니다.
마법 발견
DRY 원칙을 유지하기 위해 새로운 super() 동작은 명시적 클래스를 우회합니다. 명명. 여기에는 원래 클래스 객체를 검색하는 특별한 클래스 셀이 있어 이전 슈퍼 접근 방식을 괴롭혔던 리바인딩의 함정을 피합니다.
마법의 결과
안타깝게도 이 마법에는 단점이 있습니다. super() 이름을 super_와 같은 다른 변수에 다시 바인딩하면 기능이 중단될 수 있습니다. 이는 수퍼 또는 클래스가 메서드 내에서 참조되는 경우에만 셀이 생성되기 때문에 발생합니다.
실용적인 함정
이 동작은 다음과 같은 위험을 초래할 수 있습니다. 순진한 프로그래머:
Beyond Super()
흥미롭게도 super()는 리바인딩 문제의 영향을 받는 유일한 Python 엔터티가 아닙니다. 다른 예는 다음과 같습니다:
개발자를 위한 시사점
super()의 마법은 유용할 수 있지만 주의가 필요합니다. 그 복잡성을 이해하면 런타임 오류를 방지하는 데 도움이 됩니다. 리바인딩을 사용할 때 프로그래머는 클래스를 명시적으로 참조하거나 대체 super() 호출 방법
을 활용하는 것을 고려해야 합니다.부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3