Php 使用相同库的多个文件的python导入技术

Php 使用相同库的多个文件的python导入技术,php,python,file-io,import,include,Php,Python,File Io,Import,Include,好的,我有一个问题,我想知道什么是等同于将许多文件包含到一个php文件中的(假设这个文件名为init.php)。例如,init.php读取目录X,并包含每个文件*.php。由init.php导入的这些文件中包含的任何文件现在都将在脚本(或系统)中共享 在类似的示例中,但这次使用的是python,我有一个名为init.py的文件,它读取目录Y,并使用诸如import numpy as np、os、,sys将包含在目录Y中的文件中,或者这些文件中的每个文件都需要此导入行吗?要访问操作系统和系统?py

好的,我有一个问题,我想知道什么是等同于将许多文件包含到一个php文件中的
(假设这个文件名为
init.php
)。例如,
init.php
读取
目录X
,并包含每个文件
*.php
。由
init.php
导入的这些文件中包含的任何文件现在都将在脚本(或系统)中共享


在类似的示例中,但这次使用的是
python
,我有一个名为
init.py
的文件,它读取
目录Y
,并
使用诸如
import numpy as np、os、,sys
将包含在
目录Y
中的文件中,或者这些文件中的每个文件都需要此
导入
行吗?要访问
操作系统
系统
?python示例与php示例具有相同或不同的含义吗?为什么?

如果导入文件,Python将执行两个不同的步骤:

  • 打开导入的模块文件并执行它,包括模块中的任何
    import
    语句
  • 使导入的模块在当前模块的命名空间中可用
  • 请注意,如果导入模块
    foo
    ,则您将无法访问命名空间中由
    foo
    导入的模块-您需要直接导入它们(或通过
    foo.module
    访问它们,但通常您希望在模块中导入它们)

    简而言之,每个想要使用module
    foo
    的文件都需要导入它,即使同一应用程序中的其他文件也使用它

    如果您来自另一种语言,可能会感到困惑的一点是Python实际上只执行一次给定的模块(除非您调用
    reload()
    ),即使它在许多地方被导入。这就是为什么我将
    import
    的操作分为上面的两部分-第一部分只对每个导入的模块执行一次,但第二部分总是发生

    因此,如果您执行本身执行
    import bar
    import foo
    ,则
    foo
    bar
    都已加载并执行一次。您的模块可以访问
    foo
    ,但不能访问
    bar
    ,因为您尚未导入它(同样,您可以将其用作
    foo.bar
    ,但这通常不是很好的做法)。如果现在运行
    import bar
    ,那么模块中将有
    bar
    可用,但由于该模块已经导入一次,Python将不会再次加载和执行该模块

    如果需要更多详细信息,模块工作方式的详细信息将在中详细记录

    这回答了你的问题吗

    额外细节

    通常,您不需要在运行时通过扫描目录来加载模块,但在某些情况下这是有用的(例如,实现插件)。如果您只想在安装所基于的固定模块列表中进行选择,则只需执行标准的
    导入
    ,捕获
    导入错误
    ,然后通过尝试列表中的下一个来处理它

    如果在运行时才知道模块名称时确实需要加载模块,则可以使用。Python标准库还提供了,例如,它具有按文件名定位和导入模块的函数

    听起来您已经有了解决方案,但有时了解其他可用的模块是很有用的(这些模块都是标准库的一部分,所以总是安装的)。

    是的!谢谢:),将在计时器过期后选择。再次感谢!