@ 17. 1 ~ 18/파이썬
파이썬에서의 값 할당 방식
namoeye
2018. 3. 18. 21:16
def sort_priority2(nubmers, group):
found = False
def helper(x):
if x in group:
found = True
return (0, x)
return (1,x)
numbers.sort(key=helper)
return found
변수가 이미 현재 스코프에 정의되어 있다면 새로운 값을 얻는다.
파이썬은 변수가 현재 스코프에 존재하지 않으면 변수 정의로 취급한다. 새로 정의되는 변수의 스코프는 그 할당을 포함하고 있는 함수가 된다.
위에 함수에서 return받는 found의 값이 False일까? True일까?
사전에 helper내부에서 found = True가 된다는 가정하에서 말이다.
정답은 False이다.
그러면 우리가 알고 있는?? c#에서나.. 할당되는 방식은 어떻게 하는가?
파이썬 3에서는 nonlocal 을 사용하면되나..파이썬 2.7x에선 안된다. 지원하지 않음..