Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从main导入其他文件并使用函数_Python_Function_Import - Fatal编程技术网

Python 从main导入其他文件并使用函数

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():

注意:我减少了我的问题,因此代码只有几行(与600行相比)

我有一个问题:从
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