【发布时间】:2020-05-11 07:07:45
【问题描述】:
这是我第一次导入自己的脚本,我对导入的函数如何与其他导入的函数进行交互有一些疑问。这是我的脚本目前的样子:
from file1 import function1
from file2 import function2
function1()
函数 1 看起来像这样:
def function1():
option = input('Option: ')
if option == 'function 2':
function2()
函数 2 看起来是这样的:
def function2():
option = input('Option: ')
if option = 'function 1':
function1()
每当我运行它时,它都会给我一个未定义 function2 的错误。我尝试将两个脚本相互导入,但这会导致循环导入。我这样做的主要目的只是为了更好地组织一个脚本的功能,所以我想知道是否有办法让两个导入的函数相互引用,或者我是否应该忘记它。
【问题讨论】:
-
请分享所有相关代码以及您的项目设置方式 - 我确信您需要的东西可以完成,但如果您不这样做,就不可能告诉您您做错了什么不要告诉我们你在做什么。
-
您似乎认为 python 使用类似动态范围的东西。它没有,它使用 lexical 范围。您的
function1将尝试在定义位置而不是调用位置的范围内搜索function2。如果你需要function1来调用function2,它必须能够访问它,要么作为参数传递,要么在它可以到达的某个范围内可用(全局,封闭)。 -
@Grismar 我编辑了帖子以包含更多信息