如何在Python中导入

2024-05-23 16:44:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在主.py公司名称:

import general_functions
...

def main(argv):
    make()                         # line 98
    bake()

if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))   # line 120

总则_函数.py公司名称:

^{pr2}$

tcs系统_主.py公司名称:

import general_functions
...

class baking(object):
    def __init__(self, ...):
        muffin = 'chocolate muffin'
        make(muffin)
        bake(200)

当我运行这个/主.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

问题是总的来说_函数.py我想有一些可以在主.py但在tcs中也是如此_主.py. 在

我做错什么了?在

如何在python中导入导入导入?我读到,如果导入的内容不需要再次导入(在python中),这是否意味着我可以在主.py它也可以用于其他项目文件??在

谢谢你的建议


Tags: 文件项目pyimport名称makemaindef
2条回答

您只导入模块,而不是其内容。这很好,但是您必须在^{{cd3>}模块中将^{cd1>}引用为^{cd2>}。

您正在导入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)

您可以查看这个很棒的线程:How does Python importing exactly work?关于import在Python中的工作方式,另一个线程:Local import statements in Python关于导入范围。在

相关问题 更多 >