python:将变量提交给主程序

时间:2013-05-21 17:43:33

标签: python matplotlib

我有一个程序如下:

首先,我画了一张照片:

fig=plt.figure(figsize=(7,6))
ax = fig.add_subplot(111)
ax.plot(x,y,'ro')
ax.set_title('click on points')
plt.show()

然后当我右键单击图片时。它会放大,我会在放大图片中选择一个点:

def onclick(event):
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)
    if event.button==3:
        '''
        function zoom-in
        '''
        plt.show()
        onepoint = pylab.ginput(1)
return True

下面是可以调用“onclick”函数的命令

cid= fig.canvas.mpl_connect('button_press_event', onclick)

问题是“如何将”onpoint“中的变量”onepoint“提交给主程序”

1 个答案:

答案 0 :(得分:0)

您可以使用全局变量。在函数外声明var:

onepoint = 0

然后告诉你的功能你会像这样使用它:

def onclick(event):
    global onepoint

    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)
    if event.button==3:
        '''
        function zoom-in
        '''
        plt.show()
        onepoint = pylab.ginput(1)
    return True

函数对变量所做的任何更改都会对其产生全局影响。