Python-如何将一个脚本的值赋予另一个脚本?

时间:2018-11-19 20:47:40

标签: python class logging

因此,我尝试使用一种两个脚本,在这些脚本中彼此之间交换值。我的意思是这样,当我想打印出诸如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]

1 个答案:

答案 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")