因此,我尝试使用一种两个脚本,在这些脚本中彼此之间交换值。我的意思是这样,当我想打印出诸如logger.log("print me")
之类的内容时,由于可以通过调用logger = Logger()
来使用名称记录器,这将自动调用其他功能-但是我想要Logger()和Script()都应该彼此交换值。通过这种方式,我写了一个脚本等我的意思:
记录器:
Logger class here:
import sys
class Logger:
def log(self, text):
sys.stdout.write("{}".format(text))
sys.stdout.write("\n")
sys.stdout.flush()
Script class here:
from utils import Logger
logger = Logger() # Logger from Utils
if __name__ == '__main__':
try:
Name = 'Stackoverflow'
logger.log(Name)
except KeyboardInterrupt:
print("\n" + 'Keyboard - Interrupted)
sys.exit()
这样的输出将简单Stackoverflow
。
但是我想通过将值Stackoverflow发送回Logger类来升级它。
我想做的就是这样
def log(self, text):
sys.stdout.write("{} {}".format('[Profile-' + Name']', text))
sys.stdout.write("\n")
sys.stdout.flush()
在这种情况下的输出将是:
[Profile-Stackoverflow] New text here
现在我的问题是,我该如何做才能使Logger类在这种情况下能够使用值Name
并将其添加为[Profile-Stackoverflow]
?
答案 0 :(得分:1)
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("StackOverflow")
logger.info("HELLO!")
我不明白你在问什么
util.py
import sys
class Logger:
def __init__(self,name):
self.name = name
def log(self, text):
sys.stdout.write("[{}] - {}".format(self.name,text))
sys.stdout.write("\n")
sys.stdout.flush()
other.py
from util import Logger
log = Logger("Stackoverflow")
log.log("Hello")