Python 从main导入其他文件并使用函数
注意:我减少了我的问题,因此代码只有几行(与600行相比) 我有一个问题:从Python 从main导入其他文件并使用函数,python,function,import,Python,Function,Import,注意:我减少了我的问题,因此代码只有几行(与600行相比) 我有一个问题:从main.py我想导入文件slave.pyslave.py引用了main.py中的函数,当然我得到了一个name错误:没有定义名称“funcFromMain” 以下是我的main.py代码: import slave def funcFromMain(): return 6 print(slave.funcFromSlave()) 下面是我的slave.py代码: def funcFromSlave():
main.py
我想导入文件slave.py
slave.py
引用了main.py
中的函数,当然我得到了一个name错误:没有定义名称“funcFromMain”
以下是我的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)
将from slave import function from slave
改为位于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
回溯(最近一次呼叫最后一次):
文件“C:\Users\PrinceOfCreation\Documents\test\main.py”,第6行,在
打印(funcfromsave())
文件“C:\Users\PrinceOfCreation\Documents\test\slave.py”,第2行,在funcFromSlave中
一=funcFromMain()
NameError:未定义名称“funcFromMain”
首先,您不能像这样导入python模块:
import slave.py
一定是
from slave import funcFromSlave # to get the funcFromSlave function from slave script
您需要确保slave.py
位于main.py
的同一目录中,或者
您需要精确定位slave.py所在的子目录
对于后面的错误,最好避免循环导入,因为它会产生问题,最好将funcFromMain()
的值发送到funcfromsave
main.py:
from slave import funcFromSlave
def funcFromMain():
return 6
print(funcFromSlave(funcFromMain()))
8
slave.py:
def funcFromSlave(funcFromMain):
one = funcFromMain
two = 2
return (one + two)
运行main.py时的输出:
8
代码的唯一问题是
import slave.py
应该是import slave
。除此之外,它没有什么问题。如果此代码不适用于您,我们需要您提供更多信息-slave.py位于何处,main.py位于何处,sys.path是什么,print(slave.\uuuu文件uuu)的输出是什么,等等,没关系。。。我误解了这个问题。忘了我说过什么了。你在slave.py中尝试过“导入main”吗?这可能行得通,但理想情况下,代码中不应该有这样的循环依赖关系。现在将尝试应用于我的其他程序。
8