이번에는 Python 변수 및 할당에 대한 자세한 그래픽 설명을 가져왔습니다. Python 변수 및 할당 사용 시 주의사항은 무엇인가요?
Python은 C 언어와는 매우 다른 독특한 언어입니다. Python을 처음 접하는 많은 초보자는 C를 공부한 사람이라면 누구나 변수에 값을 할당할 때 데이터 유형을 먼저 지정해야 합니다. 그러면 값을 저장하기 위한 메모리 영역이 열립니다. 예:
int a = 1;
a는 큰 방의 작은 상자와 같이 메모리 공간의 작은 영역입니다. 할당은 정수 1을 상자에 로드하는 것입니다.
이제 변수 a를 다시 할당하세요
a = 2;
상자는 여전히 동일한 상자입니다. 즉, 메모리 주소는 변경되지 않았지만 메모리의 값이 변경되어 2가 됩니다.
다시 보세요:
int b = a;
변수 a를 다른 변수 b에 할당하는 것은 값을 복사하여 변수 b에 전달하는 것과 같습니다. b는 새로 열린 메모리 영역입니다.
Python에서는 "변수"는 "이름"입니다. 이는 레이블로도 이해될 수 있습니다. 우리의 이름과 마찬가지로 이름도 사람에게 붙어 있는 레이블입니다.
>>> 10-a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined</module></stdin>
예를 들어 위에 보고된 오류는 'a'라는 이름이 정의되어 있지 않지만 변수라고 부르지 않는다는 것입니다.
Python에서 변수에 값을 할당하는 것은 사람에게 이름을 지정하는 것과 마찬가지로 개체에 레이블을 지정하는 것과 같습니다. 변수 자체에는 유형 정보가 없으며 실제 정보는 개체에 있습니다.
예:
a = 1
내부적으로 Python은 먼저 정수 객체 1을 생성하기 위해 메모리 공간을 할당한 다음 이 1에 이름 a를 붙입니다.
그런 다음
a=2
를 실행하면 Python이 다른 메모리 영역에 정수 개체 2를 생성한 다음 1에서 레이블 a를 떼어내고 2에 붙입니다. 이때 더 이상 a를 통해 1의 값을 얻을 수 없습니다. .
이제 a라는 이름을 b
b = a
에 할당하는 것은 방금 2에 새로운 레이블 b를 붙이는 것과 같습니다. 이는 C 언어와는 완전히 다른 정의입니다. b에 대한 메모리 공간을 할당해야 합니다. 이런 식으로 a 또는 b를 통해 2에 액세스할 수 있습니다. 아기에게 이름을 지정할 때와 마찬가지로 실제로는 별명도 있습니다. 모두 같은 사람이 불렀습니다.
우리는 여전히 Python에서 "변수"라는 용어를 사용하지만(이것은 프로그래밍 언어에서 흔히 사용되는 용어이기 때문에) Python의 변수는 다른 언어와 다르다는 점을 이해해야 합니다. 변수는 단지 이름일 뿐입니다.
Python의 변수와 할당을 이해한 후 아래와 같이 함수의 매개변수 전달을 살펴보겠습니다.
>>> def fun_a(a): ... a = a+4 ... >>> g = 0 >>> fun_a(g) >>> g 0
전역 변수 g가 fun_a 함수에 전달되면 매개변수 a와 동일합니다. 함수는 레이블 0으로 부착된 다음 a가 다시 할당되었습니다(a=a+4). 이는 0에서 레이블 a를 떼어내고 4에 부착한 다음 g는 여전히 0 위의 레이블입니다.
이 함수를 다시 보면 목록 개체를 전달합니다
>>> def fun_b(names): ... names[0] = ['x', 'y'] ... >>> n_list = ['a','b','c'] >>> fun_b(n_list) >>> >>> n_list [['x','y'], 'b', 'c']
与前面的步骤还是一样的,names 和 n_list 都是['a','b','c']上的一个标签,只是列表中的第0个元素被重新赋值了,但是names和 n_list 依然都贴在这个列表对象身上,虽然 n_list的值更新了,但对象依然是原来那个对象。就好比张三和小张都是同一个人,现在给小张换件衣服时,其实就是给张三换件衣服,人还是那个人,只是它身上的东西发生了变化。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
위 내용은 Python 변수 및 할당에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!