Python
Python, for문 내에서 함수 사용시 함수의 변수선언의 차이점
hwangyoungjae
2016. 4. 21. 21:02
>>> def listtest(a=[]):
b=[]
a.append("A")
b.append("B")
print(a)
print(b)
>>> for t in range(3):
listtest()
['A']
['B']
['A', 'A']
['B']
['A', 'A', 'A']
['B']
위와같은 결과를 볼수 있음
즉 for문으로 함수를 호출시 인자로 입력한 a=[] 는 처음실행시 한번만 호출된후 넘어가기되지만
함수안에서 선언한 b=[] 변수는 지속적인 초기화가 가능함
굳이 for문이 아니더라도 같은 스크립트 안에서는 인자로 받은 변수는 초기화가 되질 않음 확인
하지만, 인자를 숫자로 받고 숫자를 1씩 증가시켰을때는 초기화가 됨
아래와 같이...
>>> def inttest(a=1):
b=1
a += 1
b += 1
print("a : {0}".format(a))
print("b : {0}".format(b))
>>> for t in range(3):
inttest()
a : 2
b : 2
a : 2
b : 2
a : 2
b : 2