Python回调到主模块(函数和变量)

时间:2015-04-27 16:44:18

标签: python

我正在尝试拥有一个模块,它为我编写的简短声明性单文件脚本提供了各种框架。在简短的脚本中,我想定义一些框架模块访问或回调的变量和函数。

我被困了......我尝试了两种方法,而且我对其中任何一种都不感到高兴。还有更好的方法吗?

第一种方法:

框架模块:

import __main__
def test():
    print __main__.var
    print __main__.func()

脚本:

import framework
var="variable"
def func():
    print "function"
framework.test()

我喜欢这种方法并且它可以工作,但是eclipse从import中获得了一个未定义的变量:var'来自main的任何导入变量或函数的错误。显然,这是不正确的,因为它起作用,但它会使许多错误的错误混乱。

第二种方法:

框架模块:

def test(glob):
    print glob['var']
    print glob['func']()

脚本:

import framework
var="variable"
def func():
    print "function"
framework.test(globals())

这似乎有用,并没有给我错误,但我不喜欢用于调用变量和函数的字典类型表示法...特别是对于函数:func' funcName'。

有没有更好的方法来实现这导致干净的代码?我可以将模块名称(即 main )作为参数传递给函数吗?是否可以关闭第一种方法的上的Eclipse错误?

1 个答案:

答案 0 :(得分:1)

我选择了第一种方法并告诉Eclipse忽略导入时未定义的变量错误,在每行上按下命令+ 1(对于我的Mac,对于Windows,它将是ctrl + 1)发生了这个错误。

命令+ 1将以下注释添加到每行的末尾:

# @UndefinedVariable

感谢@ekhumoro在评论中指出这一点。