-Python-我可以分享2个脚本的功能吗?

时间:2016-12-18 17:52:49

标签: python import

我有2个脚本,都需要使用在其他脚本上定义的函数。我想做这样的事情:

file1.py:

from file2 import function2
def function1():
    someCode...

... some code where I use function2...

file2.py:

from file1 import function1
def function2():
    someCode...

... some code where I use funcion1 ...

问题在于它不起作用,我既不知道为什么也不知道如何解决它。我该怎么做?

4 个答案:

答案 0 :(得分:1)

问题是从另一个文件运行该函数的代码在导入时运行,所以你最终会得到一个无限循环,而python不喜欢。

要修复,或许可以在另外两个.py中运行这些函数,并在另外两个中定义它们。

答案 1 :(得分:1)

选项#1将function1和function2移动到一个公共文件:

common.py

def function1():
    # some stuff
    pass

def function2():
    # some stuff
    pass

从common中导入function1和function2。

选项#2改为使用本地import

def function1():
    someCode...

def some_method_where_function_2_is_used():
    from file2 import function2
    ... some code where I use function2...

答案 2 :(得分:0)

在文件所在的目录中创建一个空的__init__.py文件。这会将其初始化为一个包,并允许您导入其中的文件。

答案 3 :(得分:0)

将“常规”功能分离为“通用”模块以绕过副作用。

file1.py:

from utils import function1

file2.py:

from utils import function2

utils.py:

def function1():
    pass

def function2():
    pass