반응형
이 코드가 작동하는 이유 :
var = 0
def func(num):
print num
var = 1
if num != 0:
func(num-1)
func(10)
그러나 이것은 "할당 전에 참조 된 지역 변수 'var'"오류를 제공합니다.
var = 0
def func(num):
print num
var = var
if num != 0:
func(num-1)
func(10)
해결 방법
첫 번째 코드에서는 지역 변수 var
를 만들고 해당 값을 사용했지만 두 번째 코드에서는 정의하지 않고 지역 변수 var
를 사용하고 있기 때문입니다.
따라서 두 번째 함수가 작동하도록하려면 다음을 선언해야합니다.-
global var
var
를 사용하기 전에 함수에서.
def func(num):
print num
var = 1 <-- # You create a local variable
if num != 0:
func(num-1)
이 코드에서 :
def func(num):
print num
var = var <--- # You are using the local variable on RHS without defining it
if num != 0:
func(num-1)
업데이트 :-
그러나 @Tim의 의견에 따라 함수 내에 global
변수를 사용해서는 안됩니다. 변수를 사용하기 전에 정의하여 로컬 범위
에서 사용하십시오. 일반적으로 변수의 범위를 local
로 제한
해야하며, 심지어 local
네임 스페이스 limit
에서도 지역 변수의 범위를 사용하면 코드를 더 쉽게 이해할 수 있습니다.
변수의 범위를 더 많이 늘릴수록 사용할 필요가없는 외부 소스에서 사용할 가능성이 높아집니다.
참조 페이지 https://stackoverflow.com/questions/13091357
반응형
'파이썬' 카테고리의 다른 글
파이썬 How does condensed distance matrix work? (pdist) (0) | 2021.02.02 |
---|---|
파이썬 Flask보기에서 JSON 응답 반환 (0) | 2021.02.02 |
파이썬 문자열의 유니 코드 문자를 다른 파이썬으로 바꾸는 방법은 무엇입니까? (0) | 2021.02.02 |
파이썬 소수를 나열하는 Python 라이브러리가 있습니까? (0) | 2021.02.02 |
파이썬 Compare strings based on alphabetical ordering (0) | 2021.02.02 |
댓글