hoonnote
496
2020-10-21 07:57:45 작성 2020-10-21 10:40:45 수정됨
2
185

JavaScript의 스코프와 Python의 스코프가 다른가요?


안녕하세요,


파이썬 공부 갓 시작했는데요! 


자바스크립트에서는 함수를 사용해서 글로벌 변수들을 바꿀수 있는걸로 알고 있는데, (바꾸기 싫으면 const를 사용하는걸루요)

파이썬에서는 그렇지 않은듯 해서요.


혹시 이게 제가 잘못 샘플을 짜서 그렇게 되는건가요?

아니면 파이썬과 자바스크립트의 스코프가 좀 다르게 동작하는걸까요?


# GLOBAL
x = 25

# LOCAL
def my_func():
    x = 50
    return x


# PRINTS GLOBAL
print(x)  -> 25 출력
 
# PRINTS LOCAL
print(my_func()) -> 50 출력

# SINCE LOCAL ONLY STAYS IN LOCAL, PRINTS GLOBAL
print(x) -> 25 출력





let x = 25;

const scope = () => {
  x = 50;
  return x;
};

console.log(x); -> 25 출력

console.log(scope()); -> 50 출력

scope();  -> x = 50으로 변경

console.log(x); -> 50 출력




0
  • 답변 2

  • 얻으민
    1k
    2020-10-21 08:09:48

    파이썬은 함수 내에서 전역 변수에 접근하는 방법이 다릅니다.


    다음 링크 참고하세요.

    https://www.w3schools.com/python/gloss_python_global_variables.asp


    # LOCAL
    def my_func():
        x = 50
        return x

    위에서 50을 대입해주신 곳 x는 전역변수 x가 아닌, my_func의 지역변수 x입니다.


    대부분의 프로그래밍 언어는 파이썬보다는 자바스크립트 문법처럼 되어있습니다.

  • hoonnote
    496
    2020-10-21 08:12:52

    아하 그렇군요 ㅎㅎ

    자바스크립트만 써봐서 당연히 그런식으로 될줄 알았는데

    파이썬은 조금 다른듯 해서 확인차 질문을 올렸습니다!


    감사합니당

  • 로그인을 하시면 답변 을 등록할 수 있습니다.