a = 1
def vartest(a):
a += 1
return a
a = vartest(a)
print(a)
함수 안에서의 매개변수와 밖에서의 매개변수가 다르다는 부분까지 왔는데요
위에서 파란 애들끼리 같고 빨간 애들끼리 같은 매개변수라고 이해하면 되는건가요?
a = 1
def vartest(a):
a += 1
return a
a = vartest(a)
print(a)
함수 안에서의 매개변수와 밖에서의 매개변수가 다르다는 부분까지 왔는데요
위에서 파란 애들끼리 같고 빨간 애들끼리 같은 매개변수라고 이해하면 되는건가요?
파란애들끼리 같고 X 빨간게 매개변수 O
구분이 이상하네. "scope"라는게 있는데, 해당 범위내에서는 다 같은거. 어느 언어에서나 대강의 규칙은 1. 매개변수나 지역변수나 같은 지역변수에 해당한다.(단, 참조인 경우 원래값이 바뀔수 있다) 2. 전역변수와 지역변수의 이름이 같을 경우 지역변수가 우선한다.(물론 자기 범위내에서) 3. return에서 넘겨주는것도 지역변수고, 값을 넘겨주면서 함수는 끝난다. 4. 파이썬은 전역변수의 사용법이 조금 모호한데, 읽는건 아무런 제한없이 읽을 수 있으나 값을 넣는것(변경하는 것)은 반드시 global 선언을 함수 내에서 해주고 해야한다. 선언없이 쓰기를 시도하면 에러난다. 그리고 이래저래 혼용할경우 지역변수로 보고 에러날때도 있으므로, 왠만하면 이름에서 구분해주는게 좋다.