Создайте класс в потоке Python - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть класс:

class Fee:
    def __init__(self):
        self.fie = foe()

    def foo(self):
        return bar

Как я могу создать экземпляр Fee, но в потоке;запустить конструктор Fee в потоке?

1 Ответ

0 голосов
/ 11 февраля 2019

Я не думаю, что поток должен использоваться исключительно для возврата класса, но если вы хотите включить класс в поток, вы можете попробовать что-то вроде:

import threading

class Fee:
    def __init__(self):
        self.fie = 42

    def print_fie(self):
        print(self.fie)


def build_thread():
    new_fee_instance = Fee()
    new_fee_instance.print_fie()


if __name__ == '__main__':
    my_thread = threading.Thread(target=build_thread)
    my_thread.start()
    my_thread.join()

Результат:

42

Процесс завершен с кодом выхода 0

Я не уверен, что это самый чистый способ построить класс в потоке,но я думаю, что моя логика с ними, как правило, заключается в том, чтобы к функции был присоединен поток -> эта функция создает класс и использует его.Я не уверен, какие мотивы у вас есть, чтобы создать поток исключительно для того, чтобы вернуть класс и не выполнять с ним никакой обработки, но я полагаю, что накладные расходы на создание потока для этой цели отрицательно скажутся на скорости вашей программы, посколькусоздавать темы и этого можно было бы избежать.

...