티스토리 뷰
수백 개의 전역 변수를 선언하고 관리하는 것은 코드 유지 보수와 관리 측면에서 효율적이지 않을 수 있습니다. 대신, 전역 변수를 관리하는 더 나은 방법으로는 다음과 같은 방법들이 있습니다:
딕셔너리 사용: 전역 변수를 딕셔너리에 저장하고, 필요한 경우 해당 딕셔너리에서 값을 가져오거나 설정합니다.
클래스 사용: 전역 상태를 관리하는 클래스를 만들고, 클래스 인스턴스를 통해 변수에 접근합니다.
이 두 가지 방법 모두 전역 변수의 수가 많을 때 더 깔끔하고 관리하기 쉬운 코드를 작성하는 데 도움이 됩니다.
1. 딕셔너리 사용
# 전역 변수 딕셔너리
선언
global_vars = {f'x{i}': 0 for i in range(1, 31)}
global_vars.update({f'y{i}': 0 for i in range(1, 31)})
def function1():
global global_vars
global_vars['x1'] = 10
global_vars['y1'] = 20
print(f"function1 - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
def function2():
global global_vars
global_vars['x2'] = 30
global_vars['y2'] = 40
print(f"function2 - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
# 함수 호출
function1()
function2()
# 변수 확인
print(f"Outside - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
print(f"Outside - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
# 전역 변수 딕셔너리 선언
global_vars = {f'x{i}': 0 for i in range(1, 31)}
global_vars.update({f'y{i}': 0 for i in range(1, 31)})
def function1():
global global_vars
global_vars['x1'] = 10
global_vars['y1'] = 20
print(f"function1 - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
def function2():
global global_vars
global_vars['x2'] = 30
global_vars['y2'] = 40
print(f"function2 - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
# 함수 호출
function1()
function2()
# 변수 확인
print(f"Outside - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
print(f"Outside - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
2. 클래스 사용
예시이니 이걸 이용하면 좋을 것 같아요.
클래스이용.. 파이썬도 해보자구요.
class GlobalVars:
def __init__(self):
for i in range(1, 31):
setattr(self, f'x{i}', 0)
setattr(self, f'y{i}', 0)
global_vars = GlobalVars()
def function1():
global global_vars
global_vars.x1 = 10
global_vars.y1 = 20
print(f'function1 - x1: {global_vars.x1}, y1: {global_vars.y1}')
def function2():
global global_vars
global_vars.x2 = 30
global_vars.y2 = 40
print(f'function2 - x2: {global_vars.x2}, y2: {global_vars.y2}')
# 함수 호출
function1()
function2()
# 변수 확인
print(f'Outside - x1: {global_vars.x1}, y1: {global_vars.y1}')
print(f'Outside - x2: {global_vars.x2}, y2: {global_vars.y2}')
# 전역 변수 딕셔너리 선언
global_vars = {f'x{i}': 0 for i in range(1, 31)}
global_vars.update({f'y{i}': 0 for i in range(1, 31)})
def function1():
global global_vars
global_vars['x1'] = 10
global_vars['y1'] = 20
print(f"function1 - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
def function2():
global global_vars
global_vars['x2'] = 30
global_vars['y2'] = 40
print(f"function2 - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
# 함수 호출
function1()
function2()
# 변수 확인
print(f"Outside - x1: {global_vars['x1']}, y1: {global_vars['y1']}")
print(f"Outside - x2: {global_vars['x2']}, y2: {global_vars['y2']}")
이 두 가지 방법은 코드의 가독성과 관리성을 향상시키며, 전역 변수의 수가 많을 때 특히 유용합니다. 딕셔너리를 사용하면 키를 통해 동적으로 변수를 참조할 수 있고, 클래스를 사용하면 객체 지향적인 접근 방식으로 전역 상태를 관리할 수 있습니다.
'IT tech Coding > python' 카테고리의 다른 글
두 개의 엑셀 파일을 비교하고 추가된 행만 추출하는 파이썬 코드 (0) | 2024.08.20 |
---|---|
OSError: [WinError 193] %1은(는) 올바른 Win32 응용 프로그램이 아닙니다 (0) | 2024.08.09 |
match-case 문을 이용한 방법 (Python 3.10 이상에서 사용 가능) (0) | 2024.07.04 |
cxlist.sort(key=lambda x: x[0]) 파이썬 정렬 초보자들이 보면 좋은 정보 (0) | 2024.07.02 |
fastAPI는 무엇을 하는 것인가? (0) | 2024.04.23 |
- Total
- Today
- Yesterday
- json파일편하게보는법
- ajax오류메시지
- 오블완
- 구글드라이브API
- 파이썬코드줄바꿈방법
- 코딩효율성
- 엑셀셀보호
- 티스토리챌린지
- chatGPT3.5파이썬버전
- json파일형태보기
- #InnoSetup
- sql문장 날짜계산
- 효율적코딩방법
- 테크에능한여성
- 프로그래머생활
- 스크립트작성기초
- 코딩튜토리얼
- isset을 적용해야 하는 이유
- #파이썬패키징
- General error: 2031
- #NSIS
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 오토핫키가이드
- #프로그램설치
- 엑셀보호
- Bootstrap 5
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 엑셀입력보호
- 뫄프로그래밍
- #InstallForge
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |