프로그래밍 핵심 개념 in Python추상화변수의 scope

Q

scope 질문있습니다.

조회 1576

좋아요 72

2020년 5월 18일()

A
4개의 답변이 있어요
커뮤니티 파트너 채택
2020년 5월 18일

댓글 9

2020년 6월 4일
global x로 지정하는 것보다 return x형식을 권장하는 이유가 있을까요? 너무 궁금해요
베스트 댓글
2020년 6월 4일
정말 프로그램이라고 불릴만큼 복잡한 수천, 수만줄의 코드에서 my 함수를 여러 함수에서 호출해서 쓰게 된다면 함수 밖의 x 값은 계속해서 바뀔 수 밖에 없을 것이에요. 그렇게 된다면 코드가 어떻게 진행되는지 이해하기도 힘들뿐더러 그만큼 예측하기 어려운 코드가 되어 결과적으로 작성하기도 힘들도 디버깅하기도 어려운 코드가 되고 말 것이에요.
2021년 4월 13일
안녕하세요 제가 제대로 이해한 것인지 궁금합니다.
1. 저 return x 값에 x + 1이 들어감
2. 그러므로 x = my(x) 의 우항은 x + 1임
3. 이걸 print (x) 하게 되면 x 값에 글로벌 변수가 들어감
4. 따라서 값이 2 + 1로 3이 나옴
이렇게 이해했는데 이게 맞는지요?
2021년 4월 14일
print(x) 는 두번째 코드인데 말씀하시는건 다른 코드 같아서 헷갈리네용 ㅠㅠ
2021년 11월 17일
저 return문을 사용해보았는데 출력되지 않아요
2021년 11월 17일
return 은 출력 역할을 하는 코드가 아닙니당. 어떤 부분에서 헷갈리신진 모르겠는데, 별도 질문으로 다시 남겨주시면 확인해보겠습니당!
2022년 12월 12일
좋은 설명 감사합니다 이해 잘되네요
2024년 1월 19일
혹시 전역변수가 함수 내에서 수정할 수 없는 이유가 무엇인지 알 수 있을까요?
2024년 7월 13일
전역변수도 위에 설명했던 것처럼 global을 이용하면 수정이 가능합니다. 다만, 랑이님이 하신 말씀처럼 비추천합니다. 전역변수의 경우 여러 함수들에서 동시에 사용할 수 있으며, 함수 외부에서도 사용하게 됩니다. 그런 변수(전역변수)의 값이 바뀌게 되면 변수가 어떻게 바뀔지와 이를 사용하는 모든 함수의 return값 또는 print 출력 내용이 변하게 됩니다. 즉, 코드의 전체적인 흐름을 파악하는 것이 힘들어 질 수 있어요. 그렇기에 global을 이용해 바꿀 수는 있지만 이를 사용하지 않으면 오류처리를 하는 것 같아요.(저의 개인적인 생각이라 잘못 된 부분이 있을 수 있어요.)\
2020년 12월 15일
2023년 3월 22일 ()

댓글 1

2023년 3월 22일
답변으로 남기겠습니당

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇