Как выставить только несколько «имен» (переменных / функций) в python (импортируемом) скрипте - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть следующий 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 не являются импортировать, т.е. импортировать их должно генерировать ошибку или предупреждение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...