변경 가능/불변 객체란 무엇인가요? 변수가 변경되면 해당 변수가 가리키는 값은 변경할 수 없으므로 원래 값을 복사한 다음 변경하는 것과 같습니다. 이렇게 하면 새 주소가 열리고 변수는 이 새 주소를 가리킵니다.
Variable object, 이 개체가 가리키는 메모리의 값은 변경될 수 있습니다. 변수(정확하게는 참조)가 변경되면 해당 변수가 참조하는 값이 실제로 직접 변경됩니다. 복사가 발생하지 않고 새 주소가 열리지 않습니다.
Python에서는 숫자 유형(int 및 float), 문자열 str 및 tuple tuple이 모두 불변 유형입니다. 목록, 사전 및 세트는 변수 유형입니다. 코드를 보는 것이 더 직관적입니다.
세트 컬렉션의 코드를 보세요:
abb = {1, 2, 3} acc = abb print(id(abb), id(acc)) acc.add(4) print(abb) # {1, 2, 3, 4} print(id(abb), id(acc)) # 相等#🎜 🎜#가변객체로 인한 변수 객체는 수정이 가능하므로 복사한 후 변경할 필요가 없고 그 자리에서 직접 변경할 수 있으므로 새로운 메모리가 열리지 않으며 전후의 ID가 변경되지 않습니다. 변화.
물론 불변객체의 경우는 그렇지 않습니다. 이것과 비교해보시면 됩니다.
abc = 3 dd = abc dd = 43 print(abc) # 3,并不随dd的改变而改变하지만 복사본이라면 그냥 복사에 불과합니다. 내용을 전달하고 인용하지 않습니다. 이는 원본 목록을 수정하지 않고 목록의 값을 사용하려는 경우 특히 유용합니다.
blist = alist[:] # or alist.copy() print(alist is blist) # False blist.append(4) print(alist) # 还是[1,2 ,3]没有变化
위 내용은 Python의 집합 컬렉션은 변수 유형입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!