Coding Memo

파이썬 - 함수에서 전역 변수 사용 본문

카테고리 없음

파이썬 - 함수에서 전역 변수 사용

minttea25 2021. 1. 12. 16:20

파이썬은 변수 선언 시에 타입을 따로 지정하지 않는다(...)

filename = None

def loadFile():
	filename = filedialog.askopenfilename(initialdir="/", title="Choose Img",
                                          filetypes=(("Image Files", "*.bmp"),
                                                     ("all files", "*.*")))
    print(filename)

print(filename)

filename을 전역 변수로 선언하고 함수에서 이 변수를 사용하려고 했는데 loadFile에서의 filename이 그 함수의 지역변수가 되어 사용되고 있음을 확인 할 수 있었다.

 

이름도 똑같은데 어떻게 전역변수로 사용할까? 해서 찾아보았다.

 

답은 global 이란 키워드로 '블록 내에서 이 변수를 전역 변수로 사용하겠음' 이라는 의미를 부여해서 사용할 수 있다는 것을 알게 되었다.

filename = None

def chooseImg():
    global filename 
    filename = filedialog.askopenfilename(initialdir="/", title="Choose Img",
                                          filetypes=(("Image Files", "*.bmp, *.jpeg, *.jpg, *.png"),
                                                     ("all files", "*.*")))
    print(filename)
print(filename)

이렇게 하면 전역변수 filename이 함수가 실행되었을 때 값이 변경되는 것을 알 수 있었다.

 

파이썬 기초가 없으니까 잠깐잠깐 뭘 정리하려고 해도 이것저것 엄청 찾아보게 되는 것 같다.

기존 알고 있는 언어와 차이점이 매-우 많은 언어인 것 같다 ㅠ