Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 - Fatal编程技术网

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
中列出它来实现。