Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在本地运行导入的函数_Python_Python 3.x - Fatal编程技术网

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没有什么意义。