Замена операторов if циклом for для необходимых журналов в регистраторе [закрыто]Python

Программы на Python
Ответить
Anonymous
 Замена операторов if циклом for для необходимых журналов в регистраторе [закрыто]

Сообщение Anonymous »

Сейчас у меня есть что-то вроде этого

Код: Выделить всё

class State:
attr1: int
attr2: Tensor
attr3: str
# ... etc

class Logger:
def __init__(self, log_attr1: bool, log_attr2: bool, log_attr3: bool)
self.log_attr1 = log_attr1
self.log_attr2 = log_attr2
self.log_attr3 = log_attr3

def load_stateful_class(self, stateful_class: State):
self.stateful_class = stateful_class

def log(self):
if self.log_attr1:
# do something

if self.log_attr2:
# do something

if self.log_attr3:
# do something

class StatefulClass(State):
def __init__(self, logger: Logger):
self.logger = logger
self.logger.load_stateful_class(self)

def __call__(self):
for i in range(10):
# do something
self.logger.log()
Было бы полезно с точки зрения скорости, если бы я превратил каждое действие журнала в метод, создав массив этих действий в __init__ на основе флаги, а затем перебирать этот массив в журнале?
Я буду вызывать stateful_class() много раз и хочу, чтобы процесс был максимально быстрым возможно.
Кроме того, существуют ли лучшие решения? Я думаю, что другие люди уже сталкивались с чем-то подобным.

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-a-logger
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»