繁体   English   中英

-Python- 我可以从 2 个脚本共享函数吗?

[英]-Python- Can I share functions from 2 scripts?

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

文件1.py:

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

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

文件2.py:

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

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

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

选项 #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...

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

要解决这个问题,也许可以在另外两个单独的.py运行这些函数,并在另外两个中定义它们。

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

将“通用”功能分成“通用”模块以绕过副作用。

文件1.py:

from utils import function1

文件2.py:

from utils import function2

工具.py:

def function1():
    pass

def function2():
    pass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM