Python:在本地运行导入的函数
我正在设计一个模块(它的函数是不相关的),我想从模块内部调用一个函数(在本例中,Python:在本地运行导入的函数,python,python-3.x,Python,Python 3.x,我正在设计一个模块(它的函数是不相关的),我想从模块内部调用一个函数(在本例中,foo.setup(),foo是模块),函数大致如下: def setup(): global a, b, c a = foo.a b = foo.b c = foo.c 由于a、b和c是内部foo.py(模块)中的变量(实际上是类,但它们被视为相同的,无需过度复杂),其功能是使a、b和c比foo.a更容易引用 现在在导入foo模块的文件(project.py)中,以下是代码: im
foo.setup()
,foo
是模块),函数大致如下:
def setup():
global a, b, c
a = foo.a
b = foo.b
c = foo.c
由于a
、b
和c
是内部foo.py
(模块)中的变量(实际上是类,但它们被视为相同的,无需过度复杂),其功能是使a
、b
和c
比foo.a
更容易引用
现在在导入foo
模块的文件(project.py
)中,以下是代码:
import foo
foo.setup()
但是,它没有将
project.py
中的a
、b
和c
定义为全局变量,而是说它找不到模块foo
,我相信它在foo.py
内部运行函数,而不是在project.py
内部运行函数,就像我想的那样,我怎样才能让用户在project.py
中导入模块并在本地运行函数?是foo.py
和project.py
在同一目录下使用从foo导入a、b、c
在project.py
中听起来你想要的是动态范围,其中,变量分辨率相对于函数调用的位置而不是函数定义。经验告诉世界,这是一个可怕的想法。使用J.F.Sebastian的建议,如果你认为你以后仍然想做你要求的事情,停下来找一个更好的方法。你写它的方式看起来像是设置
应该在project.py
中<在模块foo
中的code>foo.a没有什么意义。是foo.py
和project.py
在同一个目录中使用从foo导入a、b、c
在project.py
听起来你想要的是所谓的动态范围,其中,变量分辨率相对于函数调用的位置而不是函数定义。经验告诉世界,这是一个可怕的想法。使用J.F.Sebastian的建议,如果你认为你以后仍然想做你要求的事情,停下来找一个更好的方法。你写它的方式看起来像是设置
应该在project.py
中<模块foo
中的code>foo.a没有什么意义。