注意:我减少了我的问题,因此代码只有几行(与600行相比)
我有个问题:我想从main.py
导入文件slave.py
slave.py
引用来自main.py
的函数,当然我得到了NameError: name 'funcFromMain' is not defined
以下是main.py的代码:
import slave
def funcFromMain():
return 6
print(slave.funcFromSlave())
下面是我的slave.py代码:
def funcFromSlave():
one = funcFromMain() # <- this doesn't work
two = 2
return (one + two)
我得到了确切的错误:(注意,两个文件在完全相同的目录)
Traceback (most recent call last):
File "C:\Users\PrinceOfCreation\Documents\test\main.py", line 6, in <module>
print(slave.funcFromSlave())
File "C:\Users\PrinceOfCreation\Documents\test\slave.py", line 2, in funcFromSlave
one = funcFromMain()
NameError: name 'funcFromMain' is not defined
我尝试在slave.py的顶部添加import main
,但出现以下错误:
Traceback (most recent call last):
File "C:\Users\PrinceOfCreation\Documents\test\main.py", line 1, in <module>
import slave
File "C:\Users\PrinceOfCreation\Documents\test\slave.py", line 1, in <module>
import main
File "C:\Users\PrinceOfCreation\Documents\test\main.py", line 6, in <module>
print(slave.funcFromSlave())
AttributeError: module 'slave' has no attribute 'funcFromSlave'
用from slave import funcFromSlave
代替main的顶部:
Traceback (most recent call last):
File "C:\Users\PrinceOfCreation\Documents\test\main.py", line 6, in <module>
print(funcFromSlave())
File "C:\Users\PrinceOfCreation\Documents\test\slave.py", line 2, in funcFromSlave
one = funcFromMain()
NameError: name 'funcFromMain' is not defined
首先,不能像这样导入python模块:
一定是的
您需要确保
slave.py
位于main.py
的同一目录中,或者 您需要精确定位slave.py所在的子目录对于后面的错误,最好避免循环导入,因为它会产生问题,最好的方法是将
funcFromMain()
的值发送到funcFromSlave
主.py:
从属.py:
运行main.py时的输出:
相关问题 更多 >
编程相关推荐