我正在尝试拥有一个模块,它为我编写的简短声明性单文件脚本提供了各种框架。在简短的脚本中,我想定义一些框架模块访问或回调的变量和函数。
我被困了......我尝试了两种方法,而且我对其中任何一种都不感到高兴。还有更好的方法吗?
第一种方法:
框架模块:
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错误?
答案 0 :(得分:1)
我选择了第一种方法并告诉Eclipse忽略导入时未定义的变量错误,在每行上按下命令+ 1(对于我的Mac,对于Windows,它将是ctrl + 1)发生了这个错误。
命令+ 1将以下注释添加到每行的末尾:
# @UndefinedVariable
感谢@ekhumoro在评论中指出这一点。