我想创建一个模块,该模块在加载时会自动打印一些内容。代码看起来像这样。
from functionList import *
OUTPUT: Hello, here are the available functions in this module created by....
如果可能的话,我也希望它可以被抑制。
答案 0 :(得分:4)
将执行全局范围内的任何内容。因此,如果您将print
放在没有缩进的位置,它也会被执行。同样在导入时,import
确实会这样做。
但是仅仅因为它可以做到,并不意味着就应该这样做。如果突然每个图书馆决定打印一堆有用的笔记,那将是非常可怕的。这就是文档的用途,请不要将两者混在一起。
答案 1 :(得分:0)
如果您可以更改模块中的代码,则在全局级别添加简单的print
应该可以完成您想做的事情。
例如在functionlist.py中:
import os
print("Module functionlist has been imported")
def add_function():
pass
如果希望将其抑制,则可以使用日志记录库中的log命令替换print命令。
如果要使其可抑制:
import logging
logger = logging.getLogger(__name__)
logger.debug("Module functionlist has been imported")
def add_function():
pass
请注意,由于python缓存模块导入,因此每次运行脚本时,它只会在首次导入时打印。
正如其他人指出的那样,在导入模块时进行打印被认为是不好的做法,应避免使用。