Python如何从另一个文件中包含函数

Python how to include function from another file

我在将另一个文件中的函数包含到主可执行脚本中时遇到问题。我有太多的函数,我的主脚本变得太长和难以管理。所以我决定将每个函数移动到单独的文件中,然后附加/包含它。我在这里读了几乎所有相关的文章来解决我的问题,但没有运气。让我们看看:

1
2
3
4
5
6
7
8
9
10
11
12
main_script.py
==================
from folder.another_file import f_fromanotherfile

class my_data:
     MDList=[]

work=my_data()

def afunction():
    f_fromanotherfile()
    return

1
2
3
4
5
6
7
another_file.py
=====================
#In this file i've put just function code
def f_fromanotherfile():
    a=[1,2,3,4]
    work.MDList=a
    return

这就是错误:

第11行,在另一个文件中work.mdlist=a名称错误:未定义全局名称"work"

请帮帮我


因为在另一个文件中。

1
2
3
4
5
#In this file i've put just function code
def f_fromanotherfile():
    a=[1,2,3,4]
    work.MDList=a
    return

工时不是全局变量。然后对其进行赋值将无法工作。

您应该将您的代码更改为:another_file.py

1
2
3
4
5
6
#In this file i've put just function code
def f_fromanotherfile():
    global work
    a=[1,2,3,4]
    work.MDList=a
    return

使用global关键字u可以在所谓的global scope中说变量并执行ur赋值。

PS:有点像C中的关键字extern?


"work"的范围是其模块main_script.py,因此您无法从其他模块访问它。将"work"变为其他文件中的f_参数:

在另一个文件中:

1
2
def f_fromanotherfile(work):
  # function body stays the same

在主模块py中:

1
2
def afunction():
  f_fromanotherfile(work)