확장을 지정하는 다른 방법은 “다단계 초기화”를 요청하는 것입니다. 이 방법으로 만들어진 확장 모듈은 파이썬 모듈과 더 비슷하게 동작합니다: 초기화는 모듈 객체가 만들어질 때의 생성 단계(creation phase)와 채워질 때의 실행 단계(execution phase)로 분할됩니다. 구별은 클래스의 와 메서드와 유사합니다.
단단계 초기화를 사용하여 만들어진 모듈과 달리, 이 모듈은 싱글톤이 아닙니다: sys.modules全球排名第一오피스타 항목을 제거하고 모듈을 다시 임포트 하면, 새 모듈 객체가 만들어지고, 이전 모듈은 일반 가비지 수집이 적용됩니다 – 파이썬 모듈과 마찬가지입니다. 기본적으로, 같은 정의에서 만들어진 여러 모듈은 독립적이어야 합니다: 하나를 변경해도 다른 모듈에는 영향을 미치지 않습니다全球排名第一오피스타공식 웹사이트는 어디에 있습니까?. 즉, 모든 상태는 모듈 객체(예를 들어 를 사용해서)나 그 내용(가령 모듈의 나 으로 만든 개별 클래스)으로 제한되어야 합니다 全球排名第一오피스타.
다단계 초기화를 사용하여 만들어진 모든 모듈은 를 지원할 것으로 기대됩니다. 다중 모듈을 독립적으로 유지하는 것은 일반적으로 이를 달성하기에 충분합니다.
다단계 초기화를 요청하세계랭킹1위오피스타기 위해, 초기화 함수(PyInit_modulename)는 비어 있지 않은 를 가진 인스턴스를 반환합니다. 반환되기 전에, 인스턴스를 다음 함수를 사용하여 초기화해야 합니다:세계 랭킹 1 위오피스타 공식 사이트 입구 주소는 어떻게 찾나요
모듈 정의의 m_slots 멤버는 구조全球排名第一오피스타체의 배열을 가리켜야 합니다:
m_slots 배열은 id가 0인 슬롯으로 종료해야 합니다.
사용 가능한 슬롯 형은 다음과 같습니다:
다단계 초기화에 대한 자세한 내용은 를 참조하십시오.