>  기사  >  백엔드 개발  >  Python 변수 및 할당에 대한 자세한 그래픽 설명

Python 변수 및 할당에 대한 자세한 그래픽 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-04-09 09:54:182493검색

이번에는 Python 변수 및 할당에 대한 자세한 그래픽 설명을 가져왔습니다. Python 변수 및 할당 사용 시 주의사항은 무엇인가요?

Python은 C 언어와는 매우 다른 독특한 언어입니다. Python을 처음 접하는 많은 초보자는 C를 공부한 사람이라면 누구나 변수에 값을 할당할 때 데이터 유형을 먼저 지정해야 합니다. 그러면 값을 저장하기 위한 메모리 영역이 열립니다. 예:

int a = 1;

Python 변수 및 할당에 대한 자세한 그래픽 설명

a는 큰 방의 작은 상자와 같이 메모리 공간의 작은 영역입니다. 할당은 정수 1을 상자에 로드하는 것입니다.

이제 변수 a를 다시 할당하세요

a = 2;

Python 변수 및 할당에 대한 자세한 그래픽 설명2

상자는 여전히 동일한 상자입니다. 즉, 메모리 주소는 변경되지 않았지만 메모리의 값이 변경되어 2가 됩니다.

다시 보세요:

int b = a;

Python 변수 및 할당에 대한 자세한 그래픽 설명3

변수 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 변수 및 할당에 대한 자세한 그래픽 설명

내부적으로 Python은 먼저 정수 객체 1을 생성하기 위해 메모리 공간을 할당한 다음 이 1에 이름 a를 붙입니다.

그런 다음

a=2

를 실행하면 Python이 다른 메모리 영역에 정수 개체 2를 생성한 다음 1에서 레이블 a를 떼어내고 2에 붙입니다. 이때 더 이상 a를 통해 1의 값을 얻을 수 없습니다. .

Python 변수 및 할당에 대한 자세한 그래픽 설명

이제 a라는 이름을 b

b = a

Python 변수 및 할당에 대한 자세한 그래픽 설명

에 할당하는 것은 방금 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 위의 레이블입니다.

Python 변수 및 할당에 대한 자세한 그래픽 설명

이 함수를 다시 보면 목록 개체를 전달합니다

>>> 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的值更新了,但对象依然是原来那个对象。就好比张三和小张都是同一个人,现在给小张换件衣服时,其实就是给张三换件衣服,人还是那个人,只是它身上的东西发生了变化。

Python 변수 및 할당에 대한 자세한 그래픽 설명

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

python字符串如何转为二维数组

Event emitter的监听事件

위 내용은 Python 변수 및 할당에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.