我有以下问题。在我的项目中,我有以下文件:
main.py:
import general_functions
...
def main(argv):
make() # line 98
bake()
if __name__ == "__main__":
sys.exit(main(sys.argv[1:])) # line 120
general_functions.py:
def make(what):...
def bake(how):...
tcs_main.py:
import general_functions
...
class baking(object):
def __init__(self, ...):
muffin = 'chocolate muffin'
make(muffin)
bake(200)
当我运行这个./main.py
我得到:
Traceback (most recent call last):
File "./main.py", line xxx, in <module>
sys.exit(main(sys.argv[1:]))
File "./main.py", line 98, in main
make(muffin)
NameError: global name 'make' is not defined
事实是,我希望在general_functions.py中具有可以在main.py中使用的通用函数,也可以在tcs_main.py中使用。
我在这里做错了什么?
如何使用python导入导入?我读到,如果导入的东西不需要再次导入(在python中),这是否意味着我可以在main.py中导入所有内容,其他项目文件也可以使用它??
感谢在广告中。
您正在导入general_functions
模块,但是到那时,main.py
还不知道其内容(或者更好的说法是,未将其内容加载到main
模块中)。您可以这样做:
from general_functions import make, bake
或(我认为是更好的做法):
import general_functions
...
class baking(object):
def __init__(self, ...):
muffin = 'chocolate muffin'
general_functions.make(muffin)
general_functions.bake(200)
您可以检查一下这个很棒的线程:Python导入是如何工作的?有关如何import
在Python中工作的信息,以及其他有关如何使用Python的有关导入范围的本地导入语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句