У меня есть следующий Python скрипт:
#! /usr/bin/python3 -u
# encoding: utf-8
import zmq
import logging
import os
_zmq_channel = "ipc:///tmp/hms_logger.ipc"
class _Logger:
_instance = None
_instance_pid = 0
def __init__(self):
ctx = zmq.Context.instance()
self._logger = ctx.socket(zmq.PUB)
self._logger.connect(zmq_channel)
@classmethod
def instance(cls):
if cls._instance is None or cls._instance_pid != os.getpid():
cls._instance = cls()
cls._instance_pid = os.getpid()
# print(cls._instance)
return cls._instance
def _write(self, obj):
self._logger.send_pyobj(obj)
def debug(self, msg: str):
self._write((logging.DEBUG, msg))
def info(self, msg: str):
self._write((logging.INFO, msg))
def warn(self, msg: str):
self.warning(msg)
def warning(self, msg: str):
self._write((logging.WARNING, msg))
def error(self, msg: str):
self._write((logging.ERROR, msg))
def critical(self, msg: str):
self._write((logging.CRITICAL, msg))
def get_logger():
return _Logger.instance()
Если я импортирую вышеупомянутый скрипт, как я могу убедиться, что импортируется только get_logger()
, а другие имена, такие как _Logger
, _zmq_channel
не являются импортировать, т.е. импортировать их должно генерировать ошибку или предупреждение