如何从文件夹中的子文件导入函数(无需引用子文件的名称)

How to import function from a sub-file within a folder (without having to refer to the name of the sub-file)

在过去的几年里,我写了一堆存储在不同 python 文件中的函数,我想将它们转储到一个文件夹中,然后使用 'import folder' 来调用那些 python 个文件。

到目前为止,我阅读的所有解决方案都需要:

    from folder.pyfilename import func1 
    func1()

    from folder import *
    pyfilename.func1()

有谁知道是否可以这样做?

老实说,你的问题没有太大意义,但是你可以这样做:

    import folder.program as prog
    from folder import program2 as prog2
    prog.function()
    prog2.function()

如果您不知道,as 关键字用于创建别名。

据我所知,你不能为所欲为。您必须告诉 python 该函数在哪个文件中。

我猜你想导入整个文件夹,因为添加所有导入需要一些时间?我想你只需要将你想要的所有功能复制到一个文件中 - 或者 import 每个 file/function 正如你已经完成的那样。

您可以添加一个文件 folder/__init__.py 并让它执行子文件夹导入。

__init__.py

from .prog1 import foo, bar
from .prog2 import baz

__all__ = ["foo", "bar", "baz"]

__all__ 列出了由 from foo import * 导入的变量,因此它并不是所有名称,而是实施者认为您应该关心的所有名称。

现在您可以编写这样的程序了

from folder import *

foo()