소프트웨어, 수학 자료 정리

파이썬 글로벌 변수 (Python Global Variable)

파이썬

변수란?

프로그래밍에서 변수는 메모리이다. 어떤 값을 저장하는 공간이다.

글로벌 변수란?

프로그램에서 변수는 지역변수(local variable)와 전역변수(global variable)가 있다.

지역변수는 함수안에서 사용되는 변수다,

전역변수는 프로그램 전체에서 사용되는 변수다.

전역변수는 프로그램에서 최대한 적게 사용해야 한다. 왜냐하면 프로그램이 커지면 디버깅할 때 추적하는 것이 힘들어 질수 있기 때문이다.

아래에 예제 코딩이 있다.

파이썬은 전역변수를 함수 안에서 사용하기 위해서는 "global" 선언을 해주어야 한다.

예제

import matplotlib.pyplot as plt

from matplotlib.widgets import Button


class Show:

    def __init__(self, line, x):

        self.line = line

        self.x =

        self.cid = line.figure.canvas.mpl_connect('button_press_event', self)

    def __call__(self, event):

        print self.x


class Click:

    def __init__(self, line):

        self.line = line

        self.cid = line.figure.canvas.mpl_connect('button_press_event', self)

    def __call__(self, event):

        global x #글로벌 변수

        x = 1


    

class Index(object):

    def __init__(self):

        pass

    def click(self, event):

        Click(line)

    def show(self, event):

        Show(line, x



if __name__ == '__main__':

    

    x = [] #글로벌 변수

    

    fig = plt.figure()

    ax  = fig.add_subplot(2,1,1)

    plt.subplots_adjust(bottom=0.2)

    line,  = ax.plot([0], [0])


    callback = Index()

    axclick = plt.axes([0.7, 0.05, 0.1, 0.075])

    bclick = Button(axclick, 'click')

    bclick.on_clicked(callback.click)

    axshow = plt.axes([0.81, 0.05, 0.1, 0.075])

    bshow = Button(axshow, 'show')  

    bshow.on_clicked(callback.show)

    

    plt.show()