나는 초기화 비용이 높은 공유 리소스를 가지고 있으므로 시스템을 통해 액세스하려고합니다 (기본적으로 일부 계측에는 사용되므로 가벼워 야합니다). 그래서 설치와 접근을 관리하는 모듈을 만들었습니다. 그것은 게으른 초기화 리소스를 모듈 전역 변수에 저장합니다. 그런 다음 시스템 전체에서이 모듈의 기능을 사용하여 자원을 조작합니다.
- 이제 리소스를 다시 초기화해야하는지 (또는 얼마나 자주) 해야할지 궁금합니다.
- 개체가 CPython에서 가비지 컬렉터 (또는 더 나은) 0 참조 횟수를 수집하지만, 모듈이 현재 실행되고 있지 않더라도 참조로 계산 된 모듈에 저장된다는 것을 알고 있습니까?Python : 모듈 전역 변수의 수명
코드 예제 : 여기에는 _connect()가 느린 모듈이 있습니다. 내 시스템에서 report_safely()를 사용하여 _connect()를 가능한 한 드물게 호출하려고합니다.
__metrics = None
def _connect():
global __metrics
client = SomeSlowToSetUpClient()
__metrics = SomeMetrics(client)
client.connect()
def report_safely():
if not __metrics:
_connect()
__metrics.execute_lightweight_code()
하나의 질문은 기본적으로 ** 처음 연결 후 **이 문제가 항상 ** 연결되어 있는지 확인하는 것이 좋습니다. – voithos
글쎄, 이건 단지 UDP 패킷을 서버에 보내고 있기 때문에 연결 상태에 문제가없는 것 같니? – Zakum