Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Immutable หมายถึงอะไร? ชนิดข้อมูล Python ใดบ้างที่ Mutable และ Immutable?

ใน Python มีวัตถุ 2 ประเภทหลัก:

  • Mutable Object (วัตถุที่เปลี่ยนแปลงได้)
  • Immutable Object (วัตถุที่เปลี่ยนแปลงไม่ได้)

Mutable (เปลี่ยนแปลงได้)

วัตถุ Mutable สามารถแก้ไขได้ เช่น list, set, dict เป็นต้น วัตถุเหล่านี้เปลี่ยนแปลงได้ง่าย

ตัวอย่างที่ 1

my_list = ["Tutorials", "Point", "Pvt", "Ltd"]
my_list[2] = 'Tutorix'
print(my_list)

ผลลัพธ์

['Tutorials', 'Point', 'Tutorix', 'Ltd']

ตัวอย่างที่ 2

my_list = ['Car', 'Bike', 'Scooty', 'Bus', 'Metro']
my_list[4] = 'Bicycle'
print(my_list)

ผลลัพธ์

['Car', 'Bike', 'Scooty', 'Bus', 'Bicycle']

Immutable (เปลี่ยนแปลงไม่ได้)

วัตถุ Immutable ไม่สามารถแก้ไขได้ เช่น int, float, bool, str, tuple, frozenset เป็นต้น วัตถุเหล่านี้มีค่าใช้จ่ายสูงและยากที่จะเปลี่ยนแปลง Tuple ถูกล้อมรอบด้วยวงเล็บและไม่สามารถเปลี่ยนแปลงได้

ตัวอย่างที่ 1

my_tuple = ('1', '2', 'Python', 'Perl')
print(my_tuple)

ผลลัพธ์

('1', '2', 'Python', 'Perl')

ตัวอย่างที่ 2 - พยายามเปลี่ยนค่า Tuple

my_tuple = ('1', '2', 'Python', 'Perl')
my_tuple[4] = '2019'  # จะเกิดข้อผิดพลาด
print(my_tuple)

ผลลัพธ์

TypeError: 'tuple' object does not support item assignment

จากผลลัพธ์ข้างต้น จะเห็นว่า Tuple ไม่สามารถเปลี่ยนแปลงค่าได้