gpt4 book ai didi

python - 在python中导入files.py出现问题

转载 作者:行者123 更新时间:2023-12-01 01:21:27 25 4
gpt4 key购买 nike

我认为这是一个非常基本的问题,但我找不到任何东西。抱歉,如果这碰巧是重复的。

我有一个定义了一些函数的文件,我们将此文件称为 main_functions.py

在此文件中,我依赖于一个函数,我们可以将其称为 foo()。例如,在文件 main_functions.py 中,我们可以有这样的内容:

def bar():
return foo()

foo() 在另一个文件中定义,名为 secondary_functions.py

def foo():
return 1

现在,在我的 main 脚本中,我想导入一个可以定义 foo() 的文件,然后执行如下操作:

from secondary_functions import *    # Here I define foo()
from main_functions import *

bar()

如果我这样做,main_functions 中的函数将无法找到 secondary_functions 中存在的定义,并且我将收到如下错误:

NameError: name 'foo' is not defined

解决这个问题对我来说非常重要。

我的目标是能够拥有不同的文件,称为 secondary_functions1.py secondary_functions2.py 、 eccetera 、 foo() 的定义。

并且,为了解决问题,我不想每次都更改依赖于这些定义的文件,例如每次插入诸如 import secondary_functionsX.py 这样的内容,这将解决问题。我只想更改主脚本。

最佳答案

foo 名称导入到 main.py 中。 foo 在 main_functions.py 模块中不可用,因为您尚未在该模块中导入它。请参阅Namespaces with Module Imports了解更多关于为什么它会这样工作的信息。

实现您想要的操作的一种方法是将 foo 作为参数提供给 bar()。示例:

main.py:

from secondary_functions import foo
from main_functions import bar

bar(foo)

main_functions.py:

def bar(foo):
return foo()

辅助函数.py:

def foo():
return 1

关于python - 在python中导入files.py出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com