如何在Python中导入

福蒂斯

我有以下问题。在我的项目中,我有以下文件:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章