언어 기능 파이썬 1 : 함수에 인수를 전달

질문 : 파이썬에서 문서 함수가 값 또는 참조로 전달 매개 변수로 전달되는 것을 명확하지 않는 것 같습니다. 다음 코드는 "원래의 값이"해제되지 변경됩니다 :

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 재현

추천

출처blog.csdn.net/weixin_34270606/article/details/94197936