জেম – ৮ (Python interning)

গুগল ট্রান্সলেটরে যখন interning এর অর্থ খুঁজতে গেলাম তখন শুধু “prisoner” শব্দটাই চোখে আসলো। কোন কিছুকে একটা নির্দিষ্ট স্থানে বন্দী করাকেই তাহলে interning বলা যায়। কিন্তু পাইথনে interning কিভাবে আসল? পুরোপুরি জিনিসটা ব্যাখ্যা করা একটু কষ্টকর। সহজ সরল ভাষায় ব্যাপারটা ব্যাখ্যা করার একটা চেষ্টা করা যাক।

>> a = 1

>> b = 1

এখানে aএবং b দুটি ভ্যারিয়েবল ঘোষণা করা হল, দুইজনেরই ভ্যালু হচ্ছে 1। সাধারণভাবে যেটা মনে হয় যে এখানে মেমোরীতে দুটি ভ্যারিয়েবলের জন্য দুটি লোকেশন বরাদ্দ করা হয়েছে। কিন্তু আসলে যেটা হচ্ছে, এখানে 1 ভ্যালুটা একটা লোকেশনেই রাখা হচ্ছে। প্রথমে তৈরি হওয়ায় a এর জন্য জায়গাটা বরাদ্দ করা হয়েছে। পরবর্তীতে b তে যখন 1 assign করা হচ্ছে তখন আসলে পাইথন যা করছে b কে a এর দিকে পয়েন্ট করছে।

এখানে বলে রাখা ভালো, পাইথনে সব কিছুই হচ্ছে object। 1 একটা object, ‘Borgomul’ হচ্ছে একটা object ইত্যাদি। তাই আসলে পাইথন  object  1 কে a এবং b দুইজনকেই ধার দিচ্ছে কাজ করার জন্য।

string এর ক্ষেত্রেও একই ঘটনা ঘটছে ।

>> a = “Hello Borgomul!”

>> b = “Hello Borgomul”

এখানে “Hello Borgomul” এর জন্য একটা লোকেশন বরাদ্দ করে পরবর্তীতে a এবং b কে সেদিকে পয়েন্ট করা হচ্ছে।

এটাকেই বলে interning।  কারণ আমরা একটা নির্দিষ্ট ভ্যালুকে একটা নির্দিষ্ট লোকেশনে বন্দী করে ফেলছি। তার মালিকরা (variables) তাদেরকে  প্রয়োজনমত ব্যবহার করছে বা কাজে লাগাচ্ছে তাদেরকে ঐ লোকেশনে রেখেই।

এই ব্যাপারটা চেক করা যায়  id() ফাংশনটা দিয়ে। Format: id(variable_name)। দেখা যাবে যে, একই ভ্যালু এর মালিক ভ্যারিয়েবলগুলোর লোকেশন একই।

Md. Noor Faizur Reza
Author: Md. Noor Faizur Reza

আমার যে কাজ ভালো লাগে তা নিয়ে সারাদিন পরে থাকি !

Permanent link to this article: https://www.borgomul.com/rezanur/2749/


মন্তব্য করুন আপনার ফেসবুক প্রোফাইল ব্যবহার করে

মন্তব্য করুন