如何从文件夹中的子文件导入函数(无需引用子文件的名称)
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()
在过去的几年里,我写了一堆存储在不同 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()