Python 导入包含主模块函数的模块
假设我有以下文件夹结构:Python 导入包含主模块函数的模块,python,Python,假设我有以下文件夹结构: module module.py __init__.py main.py Main.py导入module.py,module.py本身应该具有仅存在于Main.py中的函数。例如,main.py代码: from module import * def foo(var): print var module.foo_module() module.py的内容: def foo_module():
module
module.py
__init__.py
main.py
Main.py导入module.py,module.py本身应该具有仅存在于Main.py中的函数。例如,main.py代码:
from module import *
def foo(var):
print var
module.foo_module()
module.py的内容:
def foo_module():
foo("Hello world!")
我是否可以在不重复功能的情况下实现这一点?如果没有,如何将main.py导入module.py
非常感谢避免循环进口。您可以在这里通过将
foo
放在module
中来实现这一点
如果您不希望
foo
出现在module
中,您可以创建一个单独的模块bar
来保存foo
,并在main
和module
中导入bar
,python中的一切都是对象,包括函数。您可以将必要的函数作为参数传递。这在你的情况下是否有意义,我没有足够的信息知道
def foo(var):
print var
module.foo_module(foo)
def foo_module(foo):
foo("Hello world!")
我知道,但我想做的远比这个例子复杂,不管有多复杂。使用循环导入从来没有好处!如果我创建一个具有公共函数的新模块会怎么样。是否可以同时从main.py和module.py调用?如果是这样,是否只是在main.py的同一目录中添加一个名为“common”的新文件夹,并在其上添加init.py?是的,前提是包含
main.py
的目录位于sys.path
中。这可以通过在PYTHONPATH
中列出它来实现。