Как использовать переменную внутри регистратора 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
и так далее