কম্পিউটার টিউটোরিয়াল

ইমিউটেবল (Immutable) বলতে কী বুঝায়? পাইথনে কোন টাইপগুলো ミিউটেবল (Mutable) আর কোনগুলো ইমিউটেবল (Immutable)?

পাইথনে দুটি ধরনের অবজেক্ট রয়েছে।

  • মিউটেবল অবজেক্ট (Mutable Object)
  • ইমিউটেবল অবজেক্ট (Immutable Object)

মিউটেবল (Mutable): মিউটেবল অবজেক্টগুলো পরিবর্তন করা যায়, অর্থাৎ এগুলো চেঞ্জেবল। লিস্ট (list), সেট (set), ডিকশনারি (dict) ইত্যাদি মিউটেবল। মিউটেবল অবজেক্টগুলো সহজে পরিবর্তন করা যায়।

উদাহরণ ১

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

আউটপুট

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

উদাহরণ ২

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

আউটপুট

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

ইমিউটেবল (Immutable): ইমিউটেবল অবজেক্টগুলো পরিবর্তন করা যায় না, অর্থাৎ এগুলো চেঞ্জেবল নয়। ইন্টিজার (int), ফ্লোট (float), বুলিয়ান (bool), স্ট্রিং (str), টাপল (tuple), ইউনিকোড (Unicode) ইত্যাদি ইমিউটেবল। ইমিউটেবল অবজেক্টগুলো পরিবর্তন করা ব্যয়বহুল ও কঠিন। টাপল প্যarethেসিসের ভিতরে লিখা হয় এবং টাপল ইমিউটেবল হওয়ায় এটিকে পরিবর্তন করা যায় না।

উদাহরণ ১

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

আউটপুট

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

উদাহরণ ২

my_tuple = ('1', '2', 'Python', 'Perl') 
my_tuple[4] = '2019' 
my_tuple

আউটপুট

TypeError Traceback (most recent call last)
  ...
TypeError: 'tuple' object does not support item assignment

উপরের আউটপুট থেকে স্পষ্ট হয় যে টাপল অবজেক্ট পরিবর্তন করা সম্ভব নয়।

  1. পাইথনে লিস্ট, সিকোয়েন্স এবং স্লাইস ডেটা টাইপের পার্থক্য কী?

  2. পাইথন ৩-এ স্ট্যান্ডার্ড ডেটা টাইপগুলো কী কী

  3. পাইথন ডিকশনারি ভিউ অবজেক্টগুলো কী

  4. পাইথন ২.৭.x এবং পাইথন ৩.x-এর মধ্যে মূল পার্থক্য