반응형

Python에서 Class 내 global 선언 위치를 다룹니다.

 

2023. 1. 17 최초작성

 

 

스레드 내에서 전역변수를 수정할 일이 생겨서 사용하려고 했는데 global을 클래스내 어디에 선언해야 할지 모르겠더군요. 

찾아보니 전역변수를 사용할 메소드 내에 선언하면 된다고 하네요. 아래 코드의 경우에는 run 메소드내에 global을 선언했습니다. 

 

아래 예제코드는 전역 변수 i를 스레드에서 수정하는 코드입니다. 

 

import threading

class Count(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):

        global i

        while i > 0:
           
            print(i)
           
            i = i - 1

        print('thread exit')


i = 12
t = Count()
t.start()

t.join()

print('i=', i)

print('main exit')

 

 

참고

https://stackoverflow.com/a/10814468

https://webnautes.tistory.com/1711

 

반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts