Задать вопрос
@Boris19

Как правильно переключаться между разными классами с одним интерфейсом?

У меня есть базовый класс, который описывает какой-то интерфейс. Так же у меня есть два класса, которые наследуются от этого базового класса. Как правильнее сделать выбор между этими двумя классами через указание параметра? Например, я хочу чтобы моя скрипт работал как с потоками, так и с процессами, и выбор можно было бы сделать через командную строку?
Нужно как-то динамически импортировать нужный класс?
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from abc import ABC
import sys
from threading import Thread
from multiprocessing import Process

class Executor(ABC):
    @abstractmethod
    def execute(self, f):
        pass

class ThreadExecutor(Executor):
    def execute(self, f):
        Thread(target=f).start()

class ProcessExecutor(Executor):
    def execute(self, f):
        Process(target=f).start()

def func():
    print('Hello')

if __name__ == '__main___':
    executor = None
    if sys.argv[1] == 'thread':
        executor = ThreadExecutor()
    elif sys.argv[1] == 'process':
        executor = ProcessExecutor()
    else:
        print('Usage:\n\t{} <thread|process>\n'.format(sys.argv[0]), file=sys.stderr)
        sys.exit(1)

    executor.execute(func)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
19 янв. 2025, в 02:12
70000 руб./за проект
19 янв. 2025, в 01:58
20000 руб./за проект
18 янв. 2025, в 23:27
50000 руб./за проект