【发布时间】:2016-11-06 09:42:13
【问题描述】:
这个问题与python的全局范围有关。
下面有两个文件。
fileA.py
import pprint
pprint.pprint(globals())
fileB.py
import fileA
def global_funcB():
return "global_funcB"
当我运行python fileB.py 时。 fileA.py 的 globals() 只包含 fileA 的内容。
是否可以从fileA.py 中获取fileB.py 中global_funcB 的地址?到目前为止,我只能从 fileB.py 执行此操作。
注意:出于我的目的,没有办法从 fileA.py 导入 fileB
[编辑]
让我清楚地描述我的目的。
loader.py
class loader(object):
def __init__(self, module):
print(dir(module))
builder.py + 类函数
import loader
class someobj(object):
def somefunc(self):
pass
loader.loader(someobj)
如果我从 fileB 传递一些模块/类来构建 fileA,那么就可以获取 fileB 的函数。
但是,如果 builder.py 中的函数是全局的。
builder.py + 全局函数
import loader
def someglobalfunc(self):
pass
loader.loader(???)
我不知道如何将 globals() 作为模块/类传递给另一个文件。
【问题讨论】:
-
实际上,
imports 正是您所需要的。您能否就您的问题提供更广泛的背景并解释一下,为什么您不能使用它? -
如果不从 fileA 导入 fileB,我认为这是不可能的。
标签: python global-scope