I am trying to set/unset some of the debug flags while my code is running. Below is the snippet of the function
class ABC:
def __init__(self,debugFlag):
self.debugFlag = False
def some_function()
if self.debugFlag is True:
print "Some debug logs"
Above is the code snippet. I want to set this debugFlag while my program is running and depends on the situation want to set/unset its value. Based on the current value of debugFlag it should print debug logs or not
How to do this in python
Explaining my problem again : Suppose I am having a script that takes 60 mins to run. I executed the script with debugFlag False. After 15 mins, I want to enable the debug logs. How can I do this without interrupting my execution.
答案 0 :(得分:0)
怎么样:
no such table: comentario
答案 1 :(得分:0)
是的,您可以更改self.debugFlag的值,是的。
request
答案 2 :(得分:0)
稍加修改您的班级:
class ABC:
def __init__(self,debugFlag):
self.debugFlag = debugFlag # or omit that arg and always false
def some_function(self): # Need self
if self.debugFlag:
print "Some debug logs"
def condition_setter(self):
# Do some checks here then set debugflag to False
self.debugFlag = False
创建对象后,您将能够更改其属性,例如:
class ABC:
def __init__(self,debugFlag=False):
self.debugFlag = debugFlag # initialize the flag here or use default
def some_function()
if self.debugFlag is True:
print "Some debug logs"
答案 3 :(得分:0)
一种实现此目的的方法是在模块的根目录中声明var,并在设置和引用时在同一范围内导入/引用它们。
想象一下您的模块的目录结构
my_module/
- __init__.py
- another_module.py
- utils/
- __init__.py
- and_so_on.py
在my_module / __ init__.py中声明您的__debug__变量
__debug__ = False
在您的示例代码中
import my_module
class ABC:
def __init__(self):
pass
def some_function()
if my_module.__debug__ is True:
print "Some debug logs"
然后,在实际执行代码之前,将调试标志设置为False
,以相同的方式导入和引用
import my_module
my_module.__debug__ = True
只要您导入并引用相同的IE,就可以引用该变量:
import my_module
if my_module.__debug__ is True:
print("IN DEBUG")
它将在整个执行过程中保持其价值
答案 4 :(得分:0)
尝试这样的事情:
class ABC():
def __init__(self, debugFlag):
self.debugFlag = debugFlag
def some_function(self):
if self.debugFlag:
print('Debug on\n')
else:
print('Debug off\n')
abc_object = ABC(False)
def check_choice():
if str(choice) == '1':
abc_object.debugFlag = True
abc_object.some_function()
elif str(choice) == '2':
abc_object.debugFlag = False
abc_object.some_function()
else :
print('Invalid input')
while True:
choice = input('Type 1 to enable debugging, 2 to disable debuigging : ')
check_choice()
摘要:
初始化类时,它需要1个强制性参数debugFlag,即True或False。
在类中定义函数时,应使用“ self”自变量。 Explanation as to of why this is
“如果self.debugFlag”与“ self.debugFlag为True”相同,则应使用前者,因为它更为简洁。
我们实例化一个ABC实例并将其存储在变量abc_object中。我们为它传递了debugFlag的默认值,在这种情况下为False。
然后,我们引入一些逻辑来检查debugFlag的状态,然后根据逻辑结果执行一些功能。
希望这会有所帮助。让我知道是否需要进一步说明。
答案 5 :(得分:0)
我不认为您可以直接从变量执行此操作,但是您可以例如创建一个文件(例如,debug.txt)并检查是否存在用于触发的文件。例如,创建一个名为debug.txt的空文件,然后在脚本中检查该文件是否存在。
未经测试的代码:
import os
class ABC:
def __init__(self,debugFlag):
self.debugFlag = False
def some_function()
if os.path.exists("debug.txt"):
print "Some debug logs"
通过这种方式,您可以通过创建/删除文件“ debug.txt”来触发/触发调试。