Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果未使用的导入在导入时运行函数,是否可以接受?_Python_Import - Fatal编程技术网

Python 如果未使用的导入在导入时运行函数,是否可以接受?

Python 如果未使用的导入在导入时运行函数,是否可以接受?,python,import,Python,Import,我使用许多不同的基本脚本在不同的时间推送数据,拉取报告,等等。这些脚本有一个cron条目在VM上运行 当这些脚本启动时,我想运行一个共享的函数。然而,我目前的做法感觉不清楚 我举了一个基本的例子: sharedmodule.py: 然后,我将这个模块导入到正在运行的每个脚本中,以便在导入模块时运行函数,如下所示: 多个不同脚本中的一个脚本.py: 感觉应该有更好的方法来达到同样的目的,尽管在当时似乎是一种合理的方法,不要求在每个脚本的顶部都有sharedmodule.script\u start

我使用许多不同的基本脚本在不同的时间推送数据,拉取报告,等等。这些脚本有一个cron条目在VM上运行


当这些脚本启动时,我想运行一个共享的函数。然而,我目前的做法感觉不清楚

我举了一个基本的例子:

sharedmodule.py:

然后,我将这个模块导入到正在运行的每个脚本中,以便在导入模块时运行函数,如下所示:

多个不同脚本中的一个脚本.py:

感觉应该有更好的方法来达到同样的目的,尽管在当时似乎是一种合理的方法,不要求在每个脚本的顶部都有sharedmodule.script\u start\u func

有没有更好的方法来解决这个问题

我开始认为,实际上调用这个函数只是额外的一行,并且很清楚发生了什么

我已经搜索了这个主题,但似乎找不到现有的答案


谢谢

我将引用Python的禅宗来回答:

> python -c "import this"
蒂姆·彼得斯的《蟒蛇禅》

美胜于丑。 显式比隐式好。 简单总比复杂好。 复杂总比复杂好。 平的比嵌套的好。 稀疏比密集好。 可读性很重要。 特殊情况不足以违反规则。 虽然实用胜过纯洁。 错误永远不应该悄无声息地过去。 除非明确沉默。 面对模棱两可的情况,拒绝猜测的诱惑。 应该有一种——最好只有一种——显而易见的方法来做到这一点。 虽然这种方式一开始可能并不明显,除非你是荷兰人。 现在总比没有好。 虽然永远不会比现在更好。 如果实现很难解释,那就不是个好主意。 如果实现很容易解释,这可能是一个好主意。 名称空间是一个非常好的主意——让我们做更多的工作吧

第二行指出显式优于隐式。这就是我想要传达的。显式调用函数比隐式调用要好得多,原因如下:

它使您可以控制调用该函数的时间和地点 它有助于在出现问题时进行调试,因为您可以在调用之前和/或之后注释掉调用,打印一些调试信息 代码更容易理解,因为调用不会隐藏在调用脚本中
当然,这样做的代价是,必须额外键入一行,但我相信这样做的好处超过了成本。

然后让其他东西运行该脚本,不要强迫代码必须调用它。当每个脚本启动时,我想运行一个函数,然后在脚本启动时调用该函数看起来是正确的做法。你担心什么?
import sharedmodule  #flagged in IDE as unused

# do normal script stuff
> python -c "import this"