Python 从另一个文件覆盖函数中的变量 1.总结
我不知道如何从另一个文件覆盖函数中的变量Python 从另一个文件覆盖函数中的变量 1.总结,python,python-3.x,Python,Python 3.x,我不知道如何从另一个文件覆盖函数中的变量 2.例子 2.1. 配置 我使用和模块 我有两个文件-config.py和first.py: config.py: 导入日志 导入系统 从pyfancy.pyfancy导入pyfancy log=logbook.Logger(“配置”) 日志。StreamHandler(sys.stdout, level=logbook.DEBUG).push_应用程序() def绿色\前景(彩色文本): log.debug(pyfancy().green().bol
2.例子 2.1. 配置 我使用和模块 我有两个文件-
config.py
和first.py
:
config.py
:
导入日志
导入系统
从pyfancy.pyfancy导入pyfancy
log=logbook.Logger(“配置”)
日志。StreamHandler(sys.stdout,
level=logbook.DEBUG).push_应用程序()
def绿色\前景(彩色文本):
log.debug(pyfancy().green().bold(coloredtext))
first.py
:
导入日志
从配置导入绿色前景
log=logbook.Logger(“第一个”)
绿色前景(“萨沙冠军!”)
3.复制步骤 我在控制台中运行:
python first.py
4.预期行为 我想要,那个
log
变量:
-在log=logbook.Logger(“第一”)
中first.py
-inlog=logbook.Logger(“第二个”)
,依此类推second.py
D:\PyfancyRefactoring>python first.py
调试:第一名:萨沙冠军!
5.实际行为
config.py
文件中log
变量的值
D:\PyfancyRefactoring>python first.py
[2018-01-25 16:54:25.469005]调试:配置:萨沙冠军!
6.无济于事 例如,我将以下内容添加到
config.py
:
if\uuuuuu name\uuuuuu=='config':
log=logbook.Logger(“配置”)
其他:
log=logbook.Logger(“第一个”)
我得到的是实际的行为,而不是预期的行为
7.不提供
green\u foreground
函数,但这将是大量重复的代码,我认为这不是一个好的做法配置文件创建一个名为
config
的记录器,函数green\u前台将记录到该记录器。它是这样硬编码的-在任何时候你都不会告诉green_前台函数去记录其他任何地方,它对first.py中创建的日志一无所知
运行first.py时,python会创建两个不同的log
实例。您可以修改green_前台函数,将log
实例作为参数接受,并默认为在config
中创建的实例,或者:
更改config.py
以记录此操作:
log = logbook.Logger(__name__)
Danielle M:我添加了
config.py
log=logbook.Logger(\uuuu name\uuuu)
而不是log=logbook.Logger(“config”)
→ 我首先在控制台python.py中运行→ 我仍然得到实际的行为,而不是预期的行为。谢谢。你明白为什么程序会这样做吗?您需要告诉green_前台函数使用first.py中定义的记录器。您可以怎么做?DanielleM.:您需要告诉green_前台函数使用first.py中定义的记录器。你会怎么做代码>-这是我问的问题:-)。谢谢