파이썬의 모든 것은 객체로 볼 수 있습니다. 각 객체에는 고유한 ID, 유형 및 값이 있습니다.
- id: 객체가 생성되면 해당 ID는 변경되지 않습니다. 여기서 id는 실제로 메모리에 있는 객체의 주소입니다. id()를 사용하여 메모리에 있는 객체의 주소를 확인할 수 있습니다.
- type: id와 마찬가지로 객체가 생성되면 유형을 변경할 수 없습니다.
- value: 객체의 값은 가변적입니다. . 값 값이 변경을 지원하는지 여부에 따라 다릅니다.
python 비디오 튜토리얼
일반적인 불변 객체(불변 객체):
번호: int, float, complexstring- tuple
- Frozenset: 또 다른 집합의 종류
- 예를 통해 경험해 보자
>>> x=1 >>> y=x >>> id(x)==id(y) True >>> id(1)==id(y) True
여기서 두 개의 int 객체가 생성되고 x와 y가 동일한 객체를 가리키도록 한 다음 x를 수정하려고 합니다. x+1>>>x=x+1
이때 x의 id 값은 여전히 y의 id, 1의 id와 동일합니까?
>>> x=x+1 >>> id(x)==id(y) False >>> id(x)==id(1) False >>> id(1)==id(y) True
x가 가리키는 객체는 바뀌었지만 1은 바뀌지 않았다는 것을 결과를 보면 어렵지 않게 알 수 있습니다. 이는 불변 객체입니다. 불변 객체의 경우 일단 생성되면 변경할 수 없습니다.
참고: 불변성은 절대적 불변성과 엄격하게 동일하지 않습니다
>>> a=([1],2,3) >>> id(a) 4338862696 >>> id(a[0]) 4338949128 >>> a[0][0]=0 >>> id(a) 4338862696 >>> id(a[0]) 4338949128
위의 예에서 a[0]의 값을 변경했지만 id 값에는 영향을 미치지 않았다는 것을 쉽게 알 수 있습니다. 불변 컨테이너 객체에 가변 객체에 대한 참조가 포함되어 있는 경우 후자가 변경되면 전자의 값도 변경되지만 컨테이너는 id 값이 변경되지 않으므로 여전히 불변 객체입니다.
가변 객체일반적인 가변 객체:
listdict- set
- 예제를 통해 비슷하게 느껴보세요
>>> c = [1,2,3] >>> b = c >>> id(b)==id(c) True
2개 만들기 객체를 나열하고 c, d가 포인트가 되도록 둡니다. 그런 다음 cc[0]=4
를 수정하려고 합니다. 이때 두 객체의 id 값이 일치하는지 확인하세요
>>> id(c)==id(b) True
수정 후에도 c, d는 여전히 동일한 객체를 가리키므로 변경 가능한 개체의 경우 값을 수정해도 해당 ID에 아무런 영향을 미치지 않는다는 결론을 내리는 것은 어렵지 않습니다. 4457707912
4:[5, 6, 10], id:4457707912다른 예를 보면
eg1
def update_list(nums_list): print(f'2 id:{id(nums_list)}') nums_list += [10] print(f'3 id:{id(nums_list)}') number_list = [5, 6] print(f'1:{number_list}, id:{id(number_list)}') update_list(number_list) print(f'4:{number_list}, id:{id(number_list)}')
결과를 보세요
1:1, id:4343768 416
2 id:4343768416 3 id:4343768448
일부 다른 글에서는 위의 eg0을 참조 전달, eg1을 값 전달이라고 합니다. 그러나 공식 문서에는 이 두 용어와 관련된 내용이 발견되지 않았거나 이 방법은 위 두 가지 중 하나가 아닙니다.
여기서 핵심은 다음과 같습니다.
변경 가능한 개체의 경우 함수 값을 변경하면 개체가 변경됩니다. 불변 개체의 경우 함수 값을 변경해도 개체에 아무런 영향이 없습니다.위 내용은 Python 가변 객체와 불변 객체에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

뜨거운 주제



