当级别设置为警告时,logging.debug()正在运行代码。(PYTHON)
因此,我试图将中期分解过程自动化。我的程序正在运行,但第38行的logger.debug(condSecond(5,“+”,6))正在执行函数condSecond(),即使我已将级别设置为“WARNING”。 如何避免执行该函数。(顺便说一句,我知道我可以删除那一行。我不想那样做。) 很抱歉,我不知道如何在这里添加行号当级别设置为警告时,logging.debug()正在运行代码。(PYTHON),python,Python,因此,我试图将中期分解过程自动化。我的程序正在运行,但第38行的logger.debug(condSecond(5,“+”,6))正在执行函数condSecond(),即使我已将级别设置为“WARNING”。 如何避免执行该函数。(顺便说一句,我知道我可以删除那一行。我不想那样做。) 很抱歉,我不知道如何在这里添加行号 import math import logging logger = logging.getLogger('Debugger') logging.basicConfig(lev
import math
import logging
logger = logging.getLogger('Debugger')
logging.basicConfig(level="WARNING")
def getFactors(n):
factors = []
for i in range(1, int(math.sqrt(n)) + 1):
if n % i == 0:
factors.append(i)
#factors.append(n // i) not required for this program.
return factors
logger.debug(getFactors(174))
def condSecond(x, o, n): # o -> operator ; x -> coefficient of variable with degree 1; n -> product of constant and coefficient of squared variable.
x = int(x)
n = int(n)
if o == '+':
for i in getFactors(n):
if i + n/i == x:
print(f"{i}x + {n//i}x")
return
print('not solvable (check the arguments you passed)')
elif o == '-':
for i in getFactors(n):
if i - n/i == x:
print(f"{i}x - {n//i}x")
return
elif i- n/i == -x:
print(f"{n//i}x - {i}x")
return
print('not solvable (check the arguments you passed)')
logger.debug(condSecond(5, '+', 6))
def midTermFactorization(a, b, o, c): # b -> coefficient of variable having degree 1 ; c -> constant ; a -> coefficient of squared variable
n = int(a) * int(c)
condSecond(b, o, n)
if __name__ == "__main__":
inp = input('coefficient of squared variable: ')
inp2 = input('coefficient of variable: ')
inp3 = input('operator before the constant: ')
inp4 = input('constant: ')
midTermFactorization(inp, inp2, inp3, inp4)
记录器标志仅用于告知记录器应过滤掉哪些消息以及应保存/打印哪些消息。因此,始终执行用作logger.debug参数的函数。根据记录器级别打印/记录结果
您可以做的是测试传递给记录器的级别(如此处的警告),以确定是否要调用logger.debug。因此无法完全停止logger.debug()的执行?