没有全局变量,我可以做这项工作吗?

时间:2016-07-08 02:53:52

标签: python logging import static global

library.py

str = '' 
def setStr(input):
   global str
   str = input
def getStr():
   return str

现在我可以导入模块并更新它们了......

module1.py

import library
import module2

library.setStr('wow')
module2.run()

module2.py

import library

def run():
        print(library.getStr())

输出

wow

有没有办法在没有全局调用的情况下创建我展示的功能?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

那么我如何复制日志记录的工作方式,但没有全局变量用于我的目的?

你不能,因为logging uses global (module-level) variables to store its configuration。例如,root logger保存在全局变量中。

(我的意思是,您可以将这些变量置于类级别而不是模块级别,就像使用blog ids一样,但无论如何都是相同的代码味道。)