질문 : 파이썬에서 문서 함수가 값 또는 참조로 전달 매개 변수로 전달되는 것을 명확하지 않는 것 같습니다. 다음 코드는 "원래의 값이"해제되지 변경됩니다 :
class PassByReference:
def __init__(self):
self.variable = 'Original'
self.Change(self.variable)
print self.variable
def Change(self, var):
var = 'Changed'
어떻게 참조 그것에 의해 전달되는 값을 전달하는 방법?
원래 주소 : http://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference
------
파이썬에서, 모든 변수는 객체의 메모리에 "기준"으로 이해 될 수 있으며, 또한 C 언어에서 알 수있는 void*
지각.
유형이 아니라 변수보다, 객체에 속해 있음을 유의하십시오. 두 가지 변수는 - (가변) 변경 불변 (불변) 될 수있다. 파이썬, 문자열, 튜플에서, 숫자는 객체가 변경 목록, 딕셔너리를하고 그래서 개체를 수정할 수 있습니다 할 수 없다.
함수에 대한 참조를 전달하면 자동 기능에 대한 참조, 참고 문헌에 복사되며, 외부 참조는 관련되지 않는다. 다음과 같은 두 가지 예 같은 :
a = 1
def fun(a):
a = 2
fun(a)
print a #结果为1
a = []
def fun(a):
a.append(1)
fun(a)
print a #结果为[1]
함수가 리턴하는 불변 객체의 참조 점의 함수의 첫 번째 예는, 외부 기준을 변경하지 않을 것이다. 두 번째 예는 기준 변수 객체 함수이고, 물체 상에 위치 포인터로서의 어드레스 동작에 메모리 어드레스를 변경하도록 수정 된 단지 내부 동일하지 않다.
HTTPS : //www.cnblogs.com/taceywong/p/5812967.html 재현