What is Python Dynamically Typed ? in Bengali
পাইথনের সুপারপাওয়ার: কেন একে Dynamically Typed Language বলা হয়?
আপনি কি জানেন কেন পাইথন নতুনদের কাছে এত জনপ্রিয়? এর একটি বড় কারণ হলো এর নমনীয়তা বা Flexibility। আর এই নমনীয়তার পেছনের মূল শক্তি হলো এটি একটি Dynamically Typed ভাষা। কিন্তু এই "Dynamically Typed" কথাটির মানে কী?
চিন্তা নেই! আজকের পোস্টে আমরা এই রহস্যের সমাধান করব। এটি বোঝার জন্য, আমাদের প্রথমে জানতে হবে এর বিপরীতটি, অর্থাৎ Statically Typed ভাষা কী।
পুরোনো পদ্ধতি: Statically Typed ভাষা কী?
C, C++, এবং Java-এর মতো ভাষাগুলোকে Statically Typed Language বলা হয়। এই ভাষাগুলোতে, কোনো ভেরিয়েবল ব্যবহার করার আগেই তার ধরণ বা Data Type নির্দিষ্ট করে দিতে হয়।
বিষয়টি একটি উদাহরণ দিয়ে বোঝা যাক। ধরুন, আপনি C++ এ একটি ভেরিয়েবল তৈরি করতে চান যেখানে আপনি একজন ছাত্রের রোল নম্বর রাখবেন। আপনাকে কোডটি এভাবে লিখতে হবে:
int student_roll = 101;
এখানে, int
শব্দটি দিয়ে আপনি কম্পিউটারকে আগে থেকেই বলে দিচ্ছেন যে student_roll
নামের ভেরিয়েবলটি শুধুমাত্র Integer (পূর্ণসংখ্যা) ধরণের ডেটা রাখতে পারবে। আপনি যদি পরে এই ভেরিয়েবলে কোনো টেক্সট ("Hello"
) বা দশমিক সংখ্যা (50.5
) রাখতে চান, তাহলে প্রোগ্রামটি একটি এরর (Error) দেখাবে।
অর্থাৎ, Statically Typed ভাষাগুলোতে একটি ভেরিয়েবলের ধরণ স্থির বা Static থাকে এবং পুরো প্রোগ্রামে তা পরিবর্তন করা যায় না।
পাইথনের জাদু: Dynamically Typed ভাষা কী?
পাইথন এবং জাভাস্ক্রিপ্টের মতো ভাষাগুলো হলো Dynamically Typed। এখানে আপনাকে ভেরিয়েবলের ডেটা টাইপ আগে থেকে বলে দিতে হয় না। পাইথন নিজে থেকেই বুঝে নেয় ভেরিয়েবলটির ধরণ কী হবে। কীভাবে? আপনি যে মান (Value) ভেরিয়েবলে রাখবেন, তার উপর ভিত্তি করে।
চলুন দেখি পাইথনে এটি কতটা সহজ:
# একটি ভেরিয়েবলে পূর্ণসংখ্যা রাখা হলো
my_data = 75
# একই ভেরিয়েবলে এখন দশমিক সংখ্যা রাখা হলো
my_data = 150.5
# এবং সবশেষে, একই ভেরিয়েবলে একটি স্ট্রিং রাখা হলো
my_data = "Hello Python"
দেখলেন? my_data
নামের একটি ভেরিয়েবল প্রথমে একটি Integer ছিল, তারপর সেটি Float (দশমিক সংখ্যা) হলো, এবং শেষে একটি String (টেক্সট) হয়ে গেল! পাইথন কোনো অভিযোগ ছাড়াই এটি গ্রহণ করেছে।
যেহেতু ভেরিয়েবলের টাইপ প্রোগ্রাম চলার সময় (Runtime) ডাইনামিকভাবে বা পরিবর্তনশীলভাবে নির্ধারিত হয়, তাই পাইথনকে Dynamically Typed Language বলা হয়।
চলুন হাতে-কলমে দেখি: type() ফাংশনের ব্যবহার
পাইথনে একটি বিল্ট-ইন ফাংশন আছে যার নাম type()
। এটি ব্যবহার করে আমরা যেকোনো ভেরিয়েবলের বর্তমান ডেটা টাইপ জানতে পারি।
আসুন, আমাদের my_data
ভেরিয়েবলের ধরণ পরীক্ষা করে দেখি।
# একটি ভেরিয়েবল ডিক্লেয়ার করা হলো
my_data = 75
print("প্রথম মান:", my_data)
print("প্রথম ডেটা টাইপ:", type(my_data))
print("--------------------")
# একই ভেরিয়েবলের মান এবং ধরণ পরিবর্তন করা হলো
my_data = 150.5
print("নতুন মান:", my_data)
print("নতুন ডেটা টাইপ:", type(my_data))
print("--------------------")
# আবার পরিবর্তন করা হলো
my_data = "Hello Python"
print("শেষ মান:", my_data)
print("শেষ ডেটা টাইপ:", type(my_data))
print("--------------------")
# এমনকি একটি লিস্টও রাখা যায়!
my_data = [20, 30, 40, 50]
print("লিস্ট মান:", my_data)
print("লিস্টের ডেটা টাইপ:", type(my_data))
আউটপুট:
প্রথম মান: 75
প্রথম ডেটা টাইপ: <class 'int'>
--------------------
নতুন মান: 150.5
নতুন ডেটা টাইপ: <class 'float'>
--------------------
শেষ মান: Hello Python
শেষ ডেটা টাইপ: <class 'str'>
--------------------
লিস্ট মান: [20, 30, 40, 50]
লিস্টের ডেটা টাইপ: <class 'list'>
একটি ছোট নোট: আউটপুটে class 'int'
দেখে অবাক হবেন না। পাইথনে সবকিছুই একটি অবজেক্ট (Object), তাই ডেটা টাইপগুলো ক্লাস হিসেবে দেখানো হয়। আপাতত শুধু মনে রাখুন, int
মানে Integer, float
মানে Float, আর str
মানে String।
এই সুপারপাওয়ারের সুবিধা কী?
পাইথনের এই ডাইনামিক প্রকৃতির বেশ কিছু সুবিধা রয়েছে:
- সহজ এবং দ্রুত কোডিং: আপনাকে ডেটা টাইপ নিয়ে ভাবতে হয় না, তাই কোড লেখা অনেক দ্রুত হয়।
- নমনীয়তা (Flexibility): একটি ভেরিয়েবলকে প্রয়োজনে বিভিন্ন ধরণের ডেটা সংরক্ষণের জন্য ব্যবহার করা যায়।
- কম কোড: টাইপ ডিক্লেয়ার করার প্রয়োজন না থাকায় কোড সংক্ষিপ্ত এবং পরিষ্কার থাকে।
- শিক্ষানবিস-বান্ধব: নতুনদের জন্য প্রোগ্রামিং শেখা অনেক সহজ হয়ে যায়।
উপসংহার
আজ আমরা শিখলাম কেন পাইথনকে একটি Dynamically Typed ভাষা বলা হয়। এর মূল কারণ হলো, পাইথনে ভেরিয়েবলের ডেটা টাইপ আগে থেকে নির্ধারণ করতে হয় না; এটি প্রোগ্রাম চলার সময় নির্ধারিত হয় এবং প্রয়োজনে পরিবর্তন করা যায়। এই বৈশিষ্ট্যটিই পাইথনকে এত শক্তিশালী, নমনীয় এবং ব্যবহারকারী-বান্ধব করে তুলেছে।
এখন আপনার পালা! এই কোডগুলো নিজের কম্পিউটারে চালিয়ে দেখুন এবং বিভিন্ন ধরণের মান দিয়ে পরীক্ষা করুন।