IDL初学者在这里!让我们说我有两个程序,PRO1和PRO2。如果我在PRO2中收到命令行参数,如何将参数值赋给PRO1中的变量?
我之前尝试过对象引用“我的'”到PRO1,但我在第6行收到语法错误。
PRO PRO2
opts = ob_new('mg_options)
opts.addOption, 'value', 'v'
opts.parseArgs,error_message = errorMsg
My = obj_new('PRO1')
My.A=opts.get('value')
END
作为参考,我尝试按照这些说明接收命令行参数:http://michaelgalloy.com/2009/05/11/command-line-options-for-your-idl-program.html
答案 0 :(得分:0)
我在这里有别的东西,但我认为上面的例子实际上是你要避免的,是吗? 我不确定它最终是如何完全不同,但如果你想让你的程序成为一个对象,你就必须定义一个实际的对象(见{{3并创建包含代码功能的方法。这是一个非常接近的东西。
在名为pro1__define.pro
的文件中:
function pro1::Init
self.A = 0L
return, 1
end
pro pro1::process, in_val
self.A = in_val
print, self.A
end
pro pro1__define
struct = {pro1, A:0L}
end
然后在pro2中你会做类似
的事情arg = 2
pro1_obj = pro1()
pro1_obj->process, arg
根据您使用的IDL版本,您可能必须将初始化行修改为obj_new()
语法。