Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 참조 대 값으로 전달

<시간/>

Python 언어의 모든 매개변수(인수)는 참조로 전달됩니다. 즉, 함수 내에서 매개변수가 참조하는 것을 변경하면 변경 사항도 호출하는 함수에 다시 반영됩니다.

예시

#!/usr/bin/python# 함수 정의는 다음과 같습니다. changeme( mylist ):"이는 전달된 목록을 이 함수로 변경합니다."mylist.append([1,2,3,4]);print "값 내부 function:", mylistreturn# 이제 changeme를 호출할 수 있습니다. functionmylist =[10,20,30];changeme( mylist );print "함수 외부의 값:", mylist

출력

여기에서 전달된 객체의 참조를 유지하고 동일한 객체에 값을 추가합니다. 따라서 다음과 같은 결과가 생성됩니다. -

함수 내부 값:[10, 20, 30, [1, 2, 3, 4]]함수 외부 값:[10, 20, 30, [1, 2, 3, 4]]

인수가 참조로 전달되고 호출된 함수 내에서 참조를 덮어쓰는 예가 하나 더 있습니다.

예시

#!/usr/bin/python# 함수 정의는 다음과 같습니다. changeme( mylist ):"이 함수는 전달된 목록을 이 함수로 변경합니다."mylist =[1,2,3,4]; # 이것은 mylistprint에 새 참조를 할당합니다. "함수 내부의 값:", mylistreturn# 이제 changeme를 호출할 수 있습니다. functionmylist =[10,20,30];changeme( mylist );print "함수 외부의 값:", mylist 

출력

매개변수 mylist는 함수 changeme에 대해 로컬입니다. 함수 내에서 mylist를 변경해도 mylist에는 영향을 미치지 않습니다. 이 함수는 아무 것도 수행하지 않으며 마지막으로 다음과 같은 결과를 생성합니다. -

함수 내부의 값:[1, 2, 3, 4]함수 외부의 값:[10, 20, 30]