Python 반복문에서 서로 다른 변수 생성하기

김유상·2022년 11월 21일
0

ICT인턴십

목록 보기
15/21

혹시라도 변수명이 다른 변수 들을 반복적으로 생성할 일이 생긴다면 globals()를 활용할 수 있다. 일반적으로 객체 지향적으로 프로그래밍을 한다면 사용할 일이 없지만 어떤 로직에 대해 테스트 해볼 때 사용할 수도 있을 것 같다.

for i in range(1, len(TEST_NAME_LIST) + 1):
    globals()["menu_test_select{}".format(i)] = QAction(str(i) + "번 시험", self)
    globals()['menu_test_select{}'.format(i)].triggered.connect(lambda: self.testBtnAction(int(globals()['menu_test_select{}'.format(i)].text()[0]), WIDTH_SCALE_OFFSET, self.test, self.folder, self.result_widget, self.veri_widget))
    self.menu_test.addAction(globals()['menu_test_select{}'.format(i)])

위 반복문을 확인하면 globals()를 딕셔너리처럼 사용하고 있는 것을 볼 수 있다. 실제로 globals()는 딕셔너리 형식의 자료형이고 []안에 문자열과 format을 이용해 반복되지만 이름이 겹치지 않는 변수를 만들 수 있다.

위 코드를 보면 menu_test_select1 ~ menu_test_select3까지 생성할 수 있다. Test의 수가 늘어나도 자동으로 몇 백개든 생성할 수 있다.

Referenced: https://trustyou.tistory.com/197

profile
continuous programming

0개의 댓글