Python에서 변경 가능하고 변경할 수 없는 것은 무엇입니까?

게시 됨: 2022-09-22

파이썬에서 모든 변수는 두 종류, 즉 변경 가능 및 불변의 모든 객체 인스턴스를 보유합니다. 개체가 인스턴스화될 때마다 고유한 개체 ID가 개체에 할당됩니다. 런타임은 개체 유형을 정의하며 나중에 변경할 수 없습니다.

그러나 변경 가능한 것은 변경 가능한 객체입니다. 변경 가능이라고 하면 내부 객체 상태가 변경될 수 있음을 의미합니다. 동시에 생성 후 변경할 수 없는 객체 상태는 변경할 수 없는 객체입니다. 변경 가능한 상태와 변경할 수 없는 상태는 모두 Python의 데이터 구조에 필수적입니다.

Python의 객체 가변성 기능은 Python을 동적으로 유형이 지정된 언어로 만듭니다. Python에서 Mutable과 Immutable은 개념으로서 매우 중요하지만 불변성의 자동사 특성으로 인해 종종 혼동됩니다.

그들과 주요 차이점에 대해 모두 알아 보겠습니다.

데이터 과학 온라인 과정을 확인하여 자신의 기술을 향상시키십시오.

목차

기술 향상을 위한 최고의 데이터 과학 기술

에스엘. 아니 2022년에 배워야 할 최고의 데이터 과학 기술
1 데이터 분석 온라인 과정 추론 통계 온라인 과정
2 가설 테스트 온라인 과정 로지스틱 회귀 온라인 코스
선형 회귀 과정 분석을 위한 선형 대수학 온라인 과정

파이썬의 변경 가능한 상태

'변할 수 있는'이라는 단어는 '변경할 수 있는' 또는 '변경될 수 있는' 것으로 직접 번역됩니다. 이는 변경 사항에 대해 열린 객체를 정의하고 Python에서 '변경 가능'은 값을 변경하는 객체의 능력과 관련이 있습니다. 이러한 개체는 종종 데이터 수집을 저장하고 기본 제공 유형 목록, 집합, 사전 및 사용자 정의 클래스를 포함합니다.

Python의 불변 정의 상태

Python에서 불변은 시간이 지남에 따라 객체 유형을 변경할 수 없는 경우입니다. 파이썬에서 객체의 값을 변경할 수 없는 경우 이를 불변 객체라고 합니다. 불변 객체가 생성되면 그 값은 영구적이고 변경할 수 없습니다. 변경할 수 없는 기본 제공 유형 개체는 숫자, 문자열, 튜플, 고정 집합 및 사용자 정의 클래스입니다.

파이썬의 객체

Python의 변경 가능성과 불변성에 대해 자세히 알아보기 전에 먼저 객체가 무엇인지 알아보겠습니다. Python에서는 모든 것이 객체로 간주되며 각 객체에는 세 가지 속성이 있습니다.

  • ID: 컴퓨터 메모리에 있는 개체의 주소를 나타냅니다.
  • Type : 만들어진 객체의 종류를 나타냅니다. 예를 들어, 정수, 문자열, 목록 등.
  • : 객체가 저장하는 값을 나타냅니다. 예를 들어 List=[5,6,7]은 숫자 5, 6, 7을 저장합니다.

객체의 ID와 유형이 생성 후 변경되지 않는 경우에도 값은 변경 가능한 객체에 대해 변경될 수 있습니다.

Python의 변경 가능한 객체

변경 가능한 객체는 변경되거나 변경될 수 있는 Python의 객체입니다. 코드는 이러한 객체의 구현에 대해 가르치는 데 더 좋습니다. 따라서 몇 가지 코드를 살펴보고 변경 가능한 객체를 더 잘 이해하도록 노력하겠습니다.

  • 과일의 이름을 포함하는 목록을 만들기 위해

과일= ['망고', '파파야', '오렌지']

  • 과일 목록의 요소를 쉼표와 공백으로 구분하여 인쇄하는 경우

과일의 경우:

print(과일, 끝=', ')

출력 [1]: 망고, 파파야, 오렌지

  • 메모리 주소에 생성된 개체 위치를 16진수 형식으로 인쇄하는 경우

인기 있는 데이터 과학 온라인 과정 살펴보기

IIITB의 데이터 과학 대학원 대학원 프로그램 비즈니스 의사 결정을 위한 데이터 과학 전문 인증 프로그램 애리조나 대학교 데이터 과학 석사
IIITB의 데이터 과학 고급 인증 프로그램 메릴랜드 대학교 데이터 과학 및 비즈니스 분석 전문 자격증 프로그램 데이터 과학 온라인 과정

print(hex(id(과일)))

출력 [2]: 0x1691d7de8c8

  • '과일' 목록에 새 과일 추가

fruit.append('포도')

  • 쉼표와 공백으로 구분된 '과일' 목록에 있는 요소를 인쇄하려면

과일의 경우:

print(과일, 끝=', ')

산출물 [3]: 망고, 파파야, 오렌지, 포도

  • 메모리 주소에 생성된 개체 위치를 16진수 형식으로 인쇄하는 경우

print(hex(id(과일)))

출력 [4]: ​​0x1691d7de8c8

예제는 객체의 내부 상태 'fruits'가 'Grapes'라는 과일을 하나 더 추가하여 쉽게 변경할 수 있음을 보여줍니다. 그러나 개체의 메모리 주소는 동일하게 유지되므로 새 개체를 만들 필요가 없습니다. 오히려 동일한 객체가 변경되거나 변경될 수 있습니다. 이 예제는 목록 유형인 참조 변수 이름이 'fruits'인 객체가 변경 가능함을 보여줍니다.

파이썬의 불변 객체

파이썬에서 불변 객체는 값을 변경할 수 없는 객체입니다. 불변 객체가 무엇이고 어떻게 작동하는지 더 잘 이해하기 위해 간단한 코드를 따라가 봅시다. 코드는 다음과 같습니다.

  • 월의 영어 이름을 포함하는 튜플을 생성하려면

개월 = '1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월'

  • 튜플 월의 요소를 인쇄하려면

인쇄(월)

출력 [1]: ('1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월')

  • 메모리 주소에 생성된 개체 위치를 16진수 형식으로 인쇄하는 경우

인쇄(16진수(ID(월)))

출력 [2]: 0x1691cc35090

  • 튜플은 변경할 수 없다는 점에 유의하는 것이 중요합니다. 따라서 더 많은 새로운 요소를 포함하지 못합니다. 따라서 튜플 'months'에 가상의 새 월을 추가하려면 # + 연산자와 튜플 병합을 사용해야 합니다.

개월 += '파이썬'

  • 튜플 'months'의 요소를 인쇄합니다.

인쇄(월)

출력 [3]: ('1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', 'Pythonuary')

  • 메모리 주소에 생성된 개체 위치를 16진수 형식으로 인쇄하는 경우

인쇄(16진수(ID(월)))

출력 [4]: ​​0x1691cc8ad68

인기 있는 데이터 과학 기사 읽기

데이터 과학 직업 경로: 종합 직업 가이드 데이터 과학 경력 성장: 작업의 미래가 여기에 있습니다 데이터 과학이 중요한 이유는 무엇입니까? 데이터 과학이 비즈니스에 가치를 제공하는 8가지 방법
관리자를 위한 데이터 과학의 관련성 모든 데이터 과학자가 갖추어야 할 궁극의 데이터 과학 치트 시트 데이터 과학자가 되어야 하는 6가지 이유
데이터 과학자의 하루: 그들은 무엇을 합니까? 잘못된 통념: 데이터 과학에는 코딩이 필요하지 않습니다 비즈니스 인텔리전스 대 데이터 과학: 차이점은 무엇입니까?

이 예제는 8개의 요소로 구성된 일종의 튜플인 객체를 참조하는 데 변수 이름을 쉽게 사용할 수 있음을 증명합니다. 그러나 이전 및 새 튜플의 메모리 위치 ID는 동일하지 않습니다. 따라서 개체의 내부 상태 '월'을 변경할 수 없습니다. 따라서 Python 프로그램 관리자는 메모리 주소에 새 개체를 생성했습니다. 또한 변수 이름 'months'도 9개의 요소가 있는 새 개체를 참조했습니다. 따라서 참조 변수 이름이 'months'인 개체인 튜플이 변경할 수 없는 개체임을 증명합니다.

결론

변경 가능한 개체는 주로 향후 업데이트를 허용하는 데 사용됩니다. 반면에 불변성은 네트워크 중심의 장소에서 다양한 민감한 작업에 대한 많은 효과적이고 실용적인 응용 프로그램을 제공하여 병렬 처리를 가능하게 합니다. 불변 개체, 값을 봉인하고 스레드가 데이터에 대한 덮어쓰기/업데이트를 호출하지 않도록 합니다. 미래에 변경할 필요가 없는 영구적인 코드를 작성하는 데 좋습니다.

당신이 신진 프로그래머나 데이터 과학 애호가라면 파이썬에서 변경 가능하고 불변하는 객체에 대해 배우면 이 분야를 직업으로 선택하는 데 도움이 될 것입니다. 이에 대해 배우는 가장 좋은 방법은 upGrad 에서 데이터 과학의 Executive Post Graduate Program에 등록하는 것입니다.

이 과정은 전문 교수진의 지도 하에 만들어지며 수천 명의 학습자가 미래 지향적인 직업을 준비할 수 있도록 최신 주제에 대한 심층 지식을 제공합니다.

Q1. 파이썬에서 가변과 불변의 중요한 차이점은 무엇입니까?

답변: 객체의 상태나 값은 생성 후 변경 가능합니다. 객체의 상태 또는 값은 생성 후 수정될 수 없습니다. 변경 가능한 객체는 스레드로부터 안전하지 않습니다. 불변 객체는 완전히 스레드로부터 안전합니다. 가변 클래스는 최종적이지 않습니다. 변경할 수 없는 개체를 만들기 전에 클래스를 final로 만들어야 합니다.

Q2. Python에서 변경 가능한 데이터 유형과 변경할 수 없는 데이터 유형은 무엇입니까?

답변: Python에서 변경 가능한 데이터 유형은 목록, 집합, 사전 및 사용자 정의 클래스이고 변경 불가능한 데이터 유형은 int, decimal, float, bool, tuple, string 및 range입니다.

Q3. 목록은 Python에서 변경할 수 있습니까?

답변: Python에서 목록은 쉽게 수정할 수 있는 요소가 있는 변경 가능한 데이터 유형입니다. 또한 개별 요소를 교체하고 목록을 만든 후 요소의 순서를 변경할 수도 있습니다.