Как использовать переменную внутри регистратора Python

Есть ли способ использовать переменные на уровне регистратора python вместо уровней (ошибка, информация..)? Я получаю уровень события из событий Delta Live Tables

      level_log = event.level // this is from Delta Live Tables Events
log_event.{level_log}(level, extra=extra) // is this possible? and how?

log_event.info(level, extra=extra) // I can use it like this, but I need to use a lot of statements

1 ответ

      log_event.{level_log}(level, extra=extra) // is this possible? and how?

Да, вы можете получать атрибуты динамически, используя getattr, рассмотрим следующий пример

      import math
what = input("What constant value to show? ")
val = getattr(math, what)
print(val)

который будет выводить 3.141592653589793если вы дадите pi, 6.283185307179586если вы дадите tauа также 2.718281828459045если вы дадите e. Здесь я использую встроенный mathмодуль, но та же функция может быть применена к экземплярам классов и самим классам. Атрибуты, которые можно вызывать, могут быть затем вызваны, рассмотрим следующий пример

      import math
trifunc = input("Value for which trigonometric function at 0 you want to know? ")
val = getattr(math, trifunc)(0)
print(val)

выведет, если вы дадите sin, 1.0если вы дадите cos, 0.0если вы дадите tanи так далее

Другие вопросы по тегам