gpt4 book ai didi

python - 使用python从模块调用主文件中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:18 26 4
gpt4 key购买 nike

我正在尝试制作一个这样工作的 python 脚本:

我有一个导入另一个文件的主文件,该文件是一个包含函数的类。主文件调用模块中的一个函数,在这里它运行良好,但是当模块中的 def 再次调用主文件中的另一个 def 时,我得到一个错误。

例如,在 main.py 中我有这个

from module import *
module = Example()

def foo():
module.foo2()

def foo3():
print "here is the problem"

if(__name__ == "__main__"):
foo()

在 module.py 中我有:

class Example():
def foo2(self):
foo3()

foo2 被完美调用,但是当我尝试调用 foo3() 时,我得到一个 NameError(未定义全局名称“foo3”)。我知道我应该以某种方式导入它,但我不知道该怎么做。

最后一件事:我对 python 很陌生,所以请好好解释 :-)谢谢

最佳答案

我会避免创建循环依赖并重构您的代码,使 foo3 位于模块或另一个新模块中。例如(我在跟随 PEP8 的过程中稍微清理了一下):

主要.py

import module
example = module.Example()

def foo():
module.foo2()

if __name__ == "__main__":
foo()

模块.py

import module3

class Example():
def foo2(self):
module3.foo3()

module3.py

 def foo3():
print "here is the problem"

如果您绝对必须保持循环依赖,那么处理它的最佳方法是将 module.py 中的导入移动到文件末尾,如 effbot 中所建议的那样.同样,我会不惜一切代价避免这样做。

class Example():
def foo2(self):
main.foo3()

import main

关于python - 使用python从模块调用主文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615875/

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