Правильный способ создания многих экземпляров класса - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь разработать класс, который маркирует предложение с предопределенным шаблоном. Мой класс определяется следующим образом:

class Token:

    def __init__(self, text: str, begin: int, end: int, tid: int):
        self.__text = text
        self.__length = len(text)
        self.__begin = begin
        self.__end = end
        self.__tid = tid

    @property
    def text(self) -> str:
        return self.__text

    @property
    def begin(self) -> int:
        return self.__begin

    @property
    def end(self) -> int:
        return self.__end

    @property
    def tid(self) -> int:
        return self.__tid

    def __len__(self):
        return self.__length

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

def tokenizer(sentence):
    list_of_tokens = []
    # tokenizing algorithm
    # creating an instance of Token
    # adding each instance into list_of_tokens
    return list_of_tokens

Теперь мой вопрос состоит в том, правильно ли использовать @classmethod в python (как показано ниже), чтобы помочь в решении этой проблемы или создать еще одну функцию из класс, который делает это?

@classmethod
def tokenenizer(cls, sentence):
    list_of_tokens = []
    # tokenization
    # create instance of Token with cls(*arg)
    # add each token into list_of_tokens
    return list_of_tokens # that holds objects of Token
...